获取日期时间戳为30天或更新的mysql行

时间:2014-03-20 15:50:47

标签: mysql

我试图使用这个sql获取过去30天的一堆mysql行:

SELECT * FROM `articles` WHERE date >= DATE(NOW() - INTERVAL 30 DAY) ORDER BY `views` DESC

我显然做错了,因为这会返回去年的行。

我在gmt时间戳中的日期字段。

3 个答案:

答案 0 :(得分:3)

如果您的日期字段不是DATETIMETIMESTAMPDATE字段类型(因为我认为您在“格林尼治标准时间戳”中显示“ - 我怀疑您”重新存储整数本身),你不可能做那样的比较。您还需要将30天前的日期转换为时间戳。

WHERE date >= UNIX_TIMESTAMP(DATE(NOW() - INTERVAL 30 DAY))

答案 1 :(得分:0)

尝试:

SELECT * FROM `articles` WHERE date >= CURDATE() - INTERVAL 30 DAY 
ORDER BY `views` DESC

答案 2 :(得分:0)

试试这个:

SELECT * 
FROM `articles` 
WHERE date >= DATE_SUB(NOW(),INTERVAL 30 DAY) 
ORDER BY `views` DESC