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

MySQL の方言ではなく、単純な SQL を使用してみてください。

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());

提供されたリンクを使用して、MySQL で INTERVAL を使用することもできます。

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 に答える