获取日期时间戳为30天或更高的mysql行
我正在尝试使用以下sql获取过去30天中的大量mysql行:获取日期时间戳为30天或更高的mysql行,mysql,Mysql,我正在尝试使用以下sql获取过去30天中的大量mysql行: SELECT * FROM `articles` WHERE date >= DATE(NOW() - INTERVAL 30 DAY) ORDER BY `views` DESC 很明显,我做错了什么,因为这是去年的结果 gmt时间戳中的“我的日期”字段。请尝试: SELECT * FROM `articles` WHERE date >= CURDATE() - INTERVAL 30 DAY ORDER BY `
SELECT * FROM `articles` WHERE date >= DATE(NOW() - INTERVAL 30 DAY) ORDER BY `views` DESC
很明显,我做错了什么,因为这是去年的结果
gmt时间戳中的“我的日期”字段。请尝试:
SELECT * FROM `articles` WHERE date >= CURDATE() - INTERVAL 30 DAY
ORDER BY `views` DESC
尝试:
尝试:
尝试:
如果您的日期字段不是
DATETIME
、TIMESTAMP
或date
字段类型(正如我认为您用“在GMT时间戳中”表示的那样”-我怀疑您存储的是整数本身),您将无法进行这样的比较。您还需要将30天前的日期转换为时间戳
WHERE date >= UNIX_TIMESTAMP(DATE(NOW() - INTERVAL 30 DAY))
如果您的日期字段不是
DATETIME
、TIMESTAMP
或date
字段类型(正如我认为您用“在GMT时间戳中”表示的那样”-我怀疑您存储的是整数本身),您将无法进行这样的比较。您还需要将30天前的日期转换为时间戳
WHERE date >= UNIX_TIMESTAMP(DATE(NOW() - INTERVAL 30 DAY))
如果您的日期字段不是
DATETIME
、TIMESTAMP
或date
字段类型(正如我认为您用“在GMT时间戳中”表示的那样”-我怀疑您存储的是整数本身),您将无法进行这样的比较。您还需要将30天前的日期转换为时间戳
WHERE date >= UNIX_TIMESTAMP(DATE(NOW() - INTERVAL 30 DAY))
如果您的日期字段不是
DATETIME
、TIMESTAMP
或date
字段类型(正如我认为您用“在GMT时间戳中”表示的那样”-我怀疑您存储的是整数本身),您将无法进行这样的比较。您还需要将30天前的日期转换为时间戳
WHERE date >= UNIX_TIMESTAMP(DATE(NOW() - INTERVAL 30 DAY))
试试这个:
SELECT *
FROM `articles`
WHERE date >= DATE_SUB(NOW(),INTERVAL 30 DAY)
ORDER BY `views` DESC
试试这个:
SELECT *
FROM `articles`
WHERE date >= DATE_SUB(NOW(),INTERVAL 30 DAY)
ORDER BY `views` DESC
试试这个:
SELECT *
FROM `articles`
WHERE date >= DATE_SUB(NOW(),INTERVAL 30 DAY)
ORDER BY `views` DESC
试试这个:
SELECT *
FROM `articles`
WHERE date >= DATE_SUB(NOW(),INTERVAL 30 DAY)
ORDER BY `views` DESC