我正在尝试构建查询以获取特定日期(或今天)每小时的数据。 我有一个设备数据表
# 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:*:*
我不知道最好的方法。我使用正则表达式,但我不能这样做。 谢谢
答案 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);
我认为这一定有帮助。