2017-07-13 63 views
1

我有这样的脚本来查询userCount从一天开始'xxxx-xx-xx 00:00:00',到这一天结束'xxxx-xx-xx 23:59:59'从日期范围中选择特定的一天数据

USE db; 
SELECT user 
FROM db.user AS user 
WHERE 
user.payTime BETWEEN '2017-07-12 00:00:00' AND '2017-07-12 23:59:59' 
GROUP BY user.username 

所以,现在我该怎么查询用户的payTime在一天之内从2017-06-012017-07-12

的第一件事情出来了我的脑海里声明的日期范围:

SET CURRDATE = '2017-06-01'; 
SET ENDDATE = '2017-07-12'; 

,并把脚本到像一个循环:

WHILE CURRDATE < ENDDATE DO 
    USE db; 
    ....... 
    WHERE 
    user.payTime BETWEEN 'CURRDATE 00:00:00' AND 'CURRDATE 23:59:59' 
    ....... 
    SET CURRDATE = DATE_ADD(CURRDATE, INTERVAL 1 DAY) 
END WHILE; 
+1

也许我错过了一些东西,但为什么'BETWEEN'2017-06-01 00:00:00'和'2017-07-12 23:59:59''工作? – cwallenpoole

+0

@cwallenpoole,因为我想查询每个特定日期的数据,但不是两个日期的范围 –

+0

您是否按照日期尝试分组:https://stackoverflow.com/questions/6054144/how-can-i-group-按日期时间列,而无需回吐,时间到,考虑 – cwallenpoole

回答

0

试试这个 -

SELECT user, user.payTime 
FROM db.user AS user 
WHERE user.payTime BETWEEN '2017-06-01 00:00:00' AND '2017-07-12 23:59:59' 
GROUP BY CAST(user.payTime as DATE)