SQL - Выберите записи старше 1 дня.ошибка # 1305 Функция не существует - PullRequest
1 голос
/ 18 июня 2011

для базовой команды SQL через PHPMyAdmin в MySQL. Я хочу выбрать элементы старше 1 дня. Я получаю базовую ошибку, в которой говорится, что есть ошибка синтаксиса SQL, но я не могу сказать, что я делаю неправильно:

COMMAND:

select *
from table_name
where column_name < Date_Add(day, -1, GetDate())
and user_id = 1
and column_name <> '0000-00-00 00:00:00'

ОШИБКА:

#1064 - You have an error in your SQL syntax; check the manual for the right syntax to use near '-1, GetDate()) and user_id = 1 and column_name &lt;&gt; '0000-00-00 00:00:00' LIMI' at line 3

Есть какие-нибудь подсказки? Thx !!

Ответы [ 4 ]

2 голосов
/ 18 июня 2011

Я думал, что синтаксис здесь - DATE_ADD.

Хорошо, вот из справочника 5.0:

Функция DATE_ADD () и ее синоним ADDDATE () позволяет добавить или вычесть интервал для выбранного дата, функция даты или константа даты. DATE_SUB () и SUBDATE () работают в так же, но указанный интервал вычитаются. (Если интервал был negatvie DATE_SUB () делает это положительный).

mysql> SELECT NOW(), DATE_ADD(NOW(), INTERVAL 1 MONTH) \G
*************************** 1. row ***************************
                            NOW(): 2008-09-25 11:43:29
DATE_ADD(NOW(), INTERVAL 1 MONTH): 2008-10-25 11:43:29
1 row in set (0.00 sec)

Попробуйте использовать NOW () для ошибки.

2 голосов
/ 18 июня 2011

Некоторые движки (т.е. tsql) используют DateAdd () ... MySql использует Date_Add () - пропущено подчеркивание.

Попробуйте

Date_Add(CurDate(), INTERVAL -1 DAY)
1 голос
/ 18 июня 2011

Я проголосовал за ответ NgM ВЫШЕ за его идею использовать СЕЙЧАС () - вот окончательная версия, которая сработала:

select *
from table_name
where column_name < DATE_ADD(NOW(), INTERVAL -1 DAY)
and user_id = 1
and column_name <> '0000-00-00 00:00:00'
0 голосов
/ 18 июня 2011

Разве это не

Date_Add(....)

или

AddDate(...)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...