4

我在下面的查询中收到以下错误:

 #1064 - You have an error in your SQL syntax; check the manual that corresponds 
 to your MySQL server version for the right syntax to use near ')))' at line 1

代码片段:

INSERT INTO test_bans( ip, Expiration )
    VALUES (
    "0.0.0.0", DateAdd(
    "d", 1, Date( )
    )

) 

建表查询

CREATE TABLE test_bans (
            ID smallint(6) NOT NULL AUTO_INCREMENT,
            IP text NOT NULL,
            Expiration DATETIME NOT NULL,
            PRIMARY KEY (ID)
            ) TYPE=MyISAM; 

我错过了什么?

编辑,运行此查询后,我收到此错误。我想我的新问题是如何在当前时间戳中添加一天?

#1305 - FUNCTION optimuscprime.DateAdd does not exist 

询问:

 INSERT INTO test_bans( ip, Expiration )
VALUES (
"0.0.0.0", DateAdd(
"d", 1,
CURRENT_TIMESTAMP
)
) 
4

3 回答 3

4

尝试使用简单的 SQL,而不是 MySQL 方言:

INSERT INTO test_bans( ip, Expiration )
    VALUES (
    '0.0.0.0', (NOW() + INTERVAL 1 DAY)
);
于 2010-03-28T16:35:37.367 回答
3

DATE() 接受参数,您应该使用 NOW() 来使用当前日期/时间或其他日期函数。

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html

至于那天+1 ..在PHP中我会做类似的事情:

strtotime('+1 day', time());

您还可以通过提供的链接将 INTERVAL 与 MySQL 一起使用。

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-add

于 2010-03-28T16:21:14.143 回答
3

DATE()应该有一个论据。您可能想NOW()改用。

于 2010-03-28T16:27:37.067 回答