我一直在尝试创建一个脚本,以获取昨天到10天的以前记录,但无法完成。
我有一个名为user_stats_clicks
的表和一个称为dsub
的列,这是一个时间戳
这就是尝试过的。
SELECT *
FROM `user_stats_clicks`
WHERE `dsub` = CURRENT_DATE( ) - INTERVAL 1
DAY ORDER BY `user_stats_clicks`.`id` DESC
LIMIT 0 , 30
但它不断返回零结果。
如何获取昨天到10天前的记录?
问题是您当前只指定了一半的日期范围。您还需要指定日期范围的开始,如下所示:
SELECT * FROM `user_stats_clicks`
WHERE (`dsub` < CURRENT_DATE( ) - INTERVAL 1 DAY
AND `dsub` >= CURRENT_DATE( ) - INTERVAL 10 DAY)
ORDER BY `user_stats_clicks`.`id` DESC
LIMIT 0 , 30
您可以使用BETWEEN
关键字:
SELECT * FROM `user_stats_clicks`
WHERE (`dsub` BETWEEN CURDATE() - INTERVAL 11 DAY
AND CURDATE() - INTERVAL 1 DAY)
ORDER BY `user_stats_clicks`.`id` DESC
LIMIT 0 , 30
尝试这个
SELECT * FROM `user_stats_clicks`
WHERE (`date` < CURRENT_DATE( ) - INTERVAL 1 DAY
AND `date` >= CURRENT_DATE( ) - INTERVAL 10 DAY)
ORDER BY `user_stats_clicks`.`id` DESC
LIMIT 0 , 30
而且我刚刚做了MYSQL FIDDLE检查
请尝试以下查询:
SELECT *
FROM `user_stats_clicks`
WHERE `dsub` BETWEEN CURRENT_DATE() - INTERVAL 10 DAY AND CURRENT_DATE()
DAY ORDER BY `user_stats_clicks`.`id` DESC
LIMIT 0 , 30