我如何在postgresql中按小时分组;时间“;领域

我如何在postgresql中按小时分组;时间“;领域,sql,postgresql,Sql,Postgresql,我有一个表,其列为ctime,类型为时间,不带时区 | 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 我想同时按cdate和ctime进行分组,但希望ctime只计算小时数。使用date\u trunc: 按日期、日期(“小时”,c

我有一个表,其列为
ctime
,类型为
时间,不带时区

  |   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

我想同时按
cdate
ctime
进行分组,但希望
ctime
只计算小时数。

使用
date\u trunc

按日期、日期(“小时”,ctime)
如果您只想按小时分组,我认为
日期(“小时”,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

您可能可以按cdate,hour(ctime)
进行分组。请回答您的问题并根据示例数据添加预期输出。求你了,@jarlh:我试过了,但它告诉我没有“hour”函数
group by cdate,hour(ctime)
给我
没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。
提取(ctime中的小时)
是获取小时部分的ANSI SQL方法。也许效果更好?@jarlh:Postgres中没有
hour()
函数