我需要显示来自MySQL表的时间线。基本上每个小时都能查到记录的数量。我的TimeSigned列是DateStamp
登录
Id TimeSigned MarkedBy
1. 2016-03-14 05:12:17 James
2. 2016-03-14 05:30:10 Mark
3. 2016-03-14 06:10:00 James
4. 2016-03-14 07:30:10 Mary 我正在使用下面的查询,但是它会带来错误的结果。
SELECT COUNT(Id) From Logins WHERE HOUR(TimeSigned) > 5 AND HOUR(TimeSigned) < 6我原以为它会返回一个2的计数(即1和2的记录在5-6的时间范围内),但它带来了0。
我在这里创建了一个SQL Fiddle
发布于 2016-04-28 05:17:51
在第一个条件下使用=。在5到6之间没有任何东西,所以它会计算0。
SELECT COUNT(Id) From Logins WHERE HOUR(TimeSigned) >= 5 AND HOUR(TimeSigned) < 6发布于 2016-04-28 05:25:57
HOUR()返回小时部分,因此它是整数。没有大于5和小于6的整数。我想你只想找一下小时等于5。
SELECT COUNT(Id) From Logins WHERE HOUR(TimeSigned) = 5或者,如果您想要的话,您可以通过
SELECT COUNT(Id) as Count,HOUR(TimeSigned) as Hour From Logins GROUP BY HOUR(TimeSigned)https://stackoverflow.com/questions/36905533
复制相似问题