查询错误:WHERE`someDateTime`为空或`someDateTime`<现在() - INTERVAL 3天

时间:2017-01-30 06:50:39

标签: mysql

我想选择someDateTime字段为NULL或超过3天前的用户。

SELECT `id`
FROM `users`
WHERE `someDateTime` IS NULL
OR `someDateTime` < NOW() - INTERVAL 3 DAYS
LIMIT 1

我收到此查询的语法错误。 我也试过了DATE_SUB(NOW(), INTERVAL 3 DAYS),但也失败了。

2 个答案:

答案 0 :(得分:1)

我想你错过了支架和

仅使用 DAY 而不是 DAYS

以及更多使用 CURDATE()而不是 NOW()。并使用 = 获取今天的数据。

CURDATE()返回当前时间的DATE部分。 Manual on CURDATE()

NOW()以各种格式返回日期和时间部分作为时间戳,具体取决于请求的方式。 Manual on NOW()

SELECT `id`
FROM `users`
WHERE `someDateTime` IS NULL
OR `someDateTime` <=
( CURDATE() - INTERVAL 3 DAY ) 

答案 1 :(得分:0)

使用此:

SELECT  DATE_ADD(Date(NOW()), INTERVAL 3 DAY)

or 

SELECT  DATE_ADD(Date(NOW()), INTERVAL -3 DAY)

然后减去你的数据库日期或任何....