可以使SQL查询计算一天中的每个小时?

时间:2016-06-16 16:22:07

标签: mysql sql

我有一个SQL表,它存储一些数据和日期(例如yyyymmdd)和时间(例如hhmmss)。 现在我需要选择每天每小时的条目数。

  • 首次参赛人数为:000000至005959
  • 第二名将是:010000至015959

是否可以使用单个选择进行此操作,然后拥有24个计数结果的数组?否则,我需要创建24个选项以获取我想要的所有数据。

3 个答案:

答案 0 :(得分:1)

按功能分组使用。另一种选择是创建小时,分钟和秒的字段。它会复制数据,但没有问题。

CREATE TABLE test(id int, date varchar(8), time varchar(6));

INSERT INTO test VALUES(1,'20160616','015959');
INSERT INTO test VALUES(2,'20160616','015959');
INSERT INTO test VALUES(3,'20160616','025959');

  SELECT count(substr(time,1,2)), test.date
    FROM test
GROUP BY date, substr(time,1,2);

输出:

count(substr(time,1,2)), date
'2', '20160616'
'1', '20160616'

如果您有TIME列,请使用:

  SELECT count(hour(time)), test.date
    FROM test
GROUP BY date, hour(time);

如果您不需要按date计算此数,请从selectgroup by条款中删除。

答案 1 :(得分:0)

我认为您可以使用HOUR功能。我不使用MYSQL,但看起来它有这个功能。可以检查它上面的语法。

SELECT HOUR(TheTimeField), COUNT(*)
FROM TheTable
GROUP BY HOUR(TheTimeField)
ORDER BY HOUR(TheTimeField)

答案 2 :(得分:0)

select hour (time_column), count (*)
from table
group by hour(time_column)

http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_hour