我如何在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()
函数