MySQL 按小时间隔获取记录
MySQL get records by hour interval
我需要显示 MySQL table 的时间线。基本上每小时检索记录数。我的 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
我期待它 return 计数为 2(即 1 和 2 记录在 5-6 时间范围内)但它带回 0。
我在这里创建了一个 sqlfiddle SQL Fiddle
在第一个条件中使用 =
。 5 和 6 之间没有任何东西,所以它会给出计数 0
SELECT COUNT(Id) From Logins WHERE HOUR(TimeSigned) >= 5 AND HOUR(TimeSigned) < 6
HOUR() return是小时部分,所以它是整数。
没有大于5小于6的整数。
我想你只想寻找小时等于 5
SELECT COUNT(Id) From Logins WHERE HOUR(TimeSigned) = 5
或者,如果您愿意,您可以 return 计算每小时
SELECT COUNT(Id) as Count,HOUR(TimeSigned) as Hour From Logins GROUP BY HOUR(TimeSigned)
我需要显示 MySQL table 的时间线。基本上每小时检索记录数。我的 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
我期待它 return 计数为 2(即 1 和 2 记录在 5-6 时间范围内)但它带回 0。
我在这里创建了一个 sqlfiddle SQL Fiddle
在第一个条件中使用 =
。 5 和 6 之间没有任何东西,所以它会给出计数 0
SELECT COUNT(Id) From Logins WHERE HOUR(TimeSigned) >= 5 AND HOUR(TimeSigned) < 6
HOUR() return是小时部分,所以它是整数。 没有大于5小于6的整数。 我想你只想寻找小时等于 5
SELECT COUNT(Id) From Logins WHERE HOUR(TimeSigned) = 5
或者,如果您愿意,您可以 return 计算每小时
SELECT COUNT(Id) as Count,HOUR(TimeSigned) as Hour From Logins GROUP BY HOUR(TimeSigned)