Ошибка № 1064 в MySQL Query - PullRequest
       11

Ошибка № 1064 в MySQL Query

4 голосов
/ 28 марта 2010

Я получаю следующую ошибку в запросе ниже:

 #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
)
) 

Ответы [ 3 ]

4 голосов
/ 28 марта 2010

Попробуйте использовать простой SQL, а не MySQL-диалект:

INSERT INTO test_bans( ip, Expiration )
    VALUES (
    '0.0.0.0', (NOW() + INTERVAL 1 DAY)
);
3 голосов
/ 28 марта 2010

DATE() должен иметь аргумент. Вы можете использовать NOW() вместо.

3 голосов
/ 28 марта 2010

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

...