如何在postgresql中用“时间”字段按小时分组?

时间:2017-02-08 15:56:06

标签: sql postgresql

我的表格中包含ctime类型的列time without time zone

  |   cdate    |  ctime   
  +------------+----------
  | 2016-12-24 | 12:02:17
  | 2016-12-24 | 12:02:32
  | 2016-12-24 | 12:03:00
  | 2016-12-24 | 12:02:10

我希望cdatectime分组,但希望ctime只计算几个小时。

2 个答案:

答案 0 :(得分:36)

使用date_trunc

group by cdate, date_trunc('hour', ctime)

答案 1 :(得分:10)

如果您只想根据小时进行分组,我认为date_part('hour', ctime)是更好的选择。

date_part('hour', timestamp '2001-02-16 20:38:40')    ---> 20
date_trunc('hour', interval '2 days 3 hours 40 minutes')    ---> 2 days 03:00:00