检索不到一天的行

use*_*814 10 mysql conditional timestamp

我有一个列date,其默认值为CURRENT_TIMESTAMP,例如:2011-11-16 15:34:02.有没有办法在mysql语句中放入一个条件(不是在php中)来检索不到一天的行?就像是:

SELECT * FROM orders where date > 24 hours ago
Run Code Online (Sandbox Code Playgroud)

mač*_*ček 22

您可以使用timestampadd()24小时前获取时间戳

SELECT * FROM orders WHERE `date` > timestampadd(hour, -24, now());
Run Code Online (Sandbox Code Playgroud)

这相当于

SELECT * FROM orders WHERE `date` > timestampadd(day, -1, now());
Run Code Online (Sandbox Code Playgroud)


Mar*_*c B 8

SELECT *
FROM orders
WHERE DATE(`date`) = DATE(NOW() - INTERVAL 1 DAY)
Run Code Online (Sandbox Code Playgroud)

请注意反引号date,因为它是一个保留字.