按小时分组时间戳SQLite

时间:2018-07-20 11:03:20

标签: sql sqlite

我正在尝试按小时将数据类型为TimeStamp的时间戳列分组。

这适用于按天分组:

SELECT * FROM INFO
GROUP BY
DATE(timestamp)

我曾尝试按小时分组以下内容:

SELECT * FROM INFO
GROUP BY
HOUR(timestamp)

但这给了我错误:没有这样的功能:HOUR:

我曾经问过类似的问题,但是使用的是DateTime,而不是TimeStamp。

另外,我想知道如何按任何时间段进行分组,例如按24小时,按48小时,按周等等。

1 个答案:

答案 0 :(得分:0)

SQLite中有一种方法strftime,通常group by将与诸如(count,sum,avg ...)之类的Aggregate函数一起使用。

TestDLL

CREATE TABLE T(
  Id INT,
  `timestamp` timestamp
);

insert into t values (1,'2018-01-01 01:01:12');
insert into t values (2,'2018-01-01 02:02:12');
insert into t values (3,'2018-01-01 01:01:12');

这里是strftime方法的示例。

查询

SELECT COUNT(Id),strftime ('%H',timestamp) hour
FROM T
GROUP BY strftime ('%H',timestamp)

sqlfiddle