首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL按小时间隔获取记录

MySQL按小时间隔获取记录
EN

Stack Overflow用户
提问于 2016-04-28 04:53:27
回答 2查看 177关注 0票数 1

我需要显示来自MySQL表的时间线。基本上每个小时都能查到记录的数量。我的TimeSigned列是DateStamp

登录

代码语言:javascript
复制
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 

我正在使用下面的查询,但是它会带来错误的结果。

代码语言:javascript
复制
SELECT COUNT(Id) From Logins WHERE HOUR(TimeSigned) > 5 AND HOUR(TimeSigned) < 6

我原以为它会返回一个2的计数(即1和2的记录在5-6的时间范围内),但它带来了0。

我在这里创建了一个SQL Fiddle

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-28 05:17:51

在第一个条件下使用=。在5到6之间没有任何东西,所以它会计算0。

代码语言:javascript
复制
SELECT COUNT(Id) From Logins WHERE HOUR(TimeSigned) >= 5 AND HOUR(TimeSigned) < 6
票数 1
EN

Stack Overflow用户

发布于 2016-04-28 05:25:57

HOUR()返回小时部分,因此它是整数。没有大于5和小于6的整数。我想你只想找一下小时等于5。

代码语言:javascript
复制
SELECT COUNT(Id) From Logins WHERE HOUR(TimeSigned) = 5

或者,如果您想要的话,您可以通过

代码语言:javascript
复制
SELECT COUNT(Id) as Count,HOUR(TimeSigned) as Hour  From Logins GROUP BY HOUR(TimeSigned)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36905533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档