0

I have been trying to create a script that get the previous records from yesterday up to 10 days but cant do it.

I have a table called user_stats_clicks and a column named dsub that is a timstamp

This is what tried.

SELECT * 
FROM  `user_stats_clicks` 
WHERE  `dsub` = CURRENT_DATE( ) - INTERVAL 1 
DAY ORDER BY  `user_stats_clicks`.`id` DESC 
LIMIT 0 , 30

But it keeps on returning zero results.

How do I get the records from yesterday up to 10 days earlier?

4

4 回答 4

0

问题是您当前只指定了一半的日期范围。您还需要指定日期范围的开始,如下所示:

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
于 2013-08-05T13:04:20.523 回答
0

您可以使用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
于 2013-08-05T13:06:11.697 回答
0

尝试这个

  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上工作过看看

于 2013-08-05T13:13:44.590 回答
0

请尝试以下查询:

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
于 2013-08-05T13:15:24.703 回答