mysql查询每小时选择数据

时间:2015-05-31 11:54:59

标签: mysql

我正在尝试构建查询以获取特定日期(或今天)每小时的数据。 我有一个设备数据表

#   Name                      Type      
    1  : idPrimary  --       int(11)                
    2 : inputDate   --      varchar(32) 
    3 : input1      --      varchar(11)     
    4 : input2      --      varchar(11) 

在inputDate中我的数据采用以下格式:

SELECT inputDate FROM `deviceData` WHERE `inputDate` BETWEEN '2015-05-29 16:30:07' AND '2015-05-29 21:30:07' ORDER BY id 

显示0到24行(总计3304,查询耗时0.3487秒。)

2015-05-29 16:30:09
2015-05-29 16:30:20
2015-05-29 16:30:25
2015-05-29 16:30:41
2015-05-29 16:30:46
2015-05-29 16:30:51
2015-05-29 16:30:56
2015-05-29 16:31:01
2015-05-29 16:31:07
2015-05-29 16:31:49
2015-05-29 16:31:54
2015-05-29 16:32:00
2015-05-29 16:32:10
2015-05-29 16:32:15
现在我想在一小时内只获取一个数据,分钟和秒数并不重要。例如:

2015-05-29 5:*:*
2015-05-29 6:*:*
2015-05-29 7:*:*
2015-05-29 8:*:* 

我不知道最好的方法。我使用正则表达式,但我不能这样做。 谢谢

2 个答案:

答案 0 :(得分:3)

嗯,这很可怕,但是。试试这个查询:)

select * from (select substr(inputDate, 1, 13) as hours, input1 from deviceData order by inputDate desc) t GROUP BY hours;

我可能搞砸了排序方向,但是/

答案 1 :(得分:0)

select max(inputDate) from deviceData group by date(inputDate),hour(inputDate);

我认为这一定有帮助。