我想知道每天创建的用户数,按日期分组,最后5/10/15天。
以下是我过去5天用于日期注册的查询:
SELECT CAST(created AS DATE) as DateField , count(email) as Num
FROM invited_users where created > curdate()-5
GROUP BY CAST(created AS DATE);
// "created" is a datetime field
// returns 5 rows
这就像我预期的那样有效。
但是,当我将数字“5”更改为“10”或15(或者除了5之外的任何东西,在我看来)时,它不起作用!相反,它返回数据库中的所有日期!
SELECT CAST(created AS DATE) as DateField , count(email) as Num
FROM invited_users where created > curdate()-15
GROUP BY CAST(created AS DATE);
// returns 97 rows
为什么?这是怎么回事?
顺便说一句,其他任何一张桌子也是如此。
编辑:
select curdate(), curdate() -5, curdate() - 15, curdate() + 1, curdate() + 0;
给出以下结果: 3/5/2013 12:00:00 AM 20130300 20130290 20130306 20130305
我不明白这是如何计算的。当CURDATE()+ 1给出明天日期时,CURDATE() - 5给我一个我无法解码的值。
答案 0 :(得分:1)
尝试使用以下内容:
CURDATE() - INTERVAL 5 DAY