PostgreSQL:generate_series时间范围从午夜到午夜

时间:2017-10-06 09:47:18

标签: postgresql

我想使用generate_series()以以下格式返回数据:

00:00 - 01:00
01:00 - 02:00
12:00 - 13:00

从午夜到午夜 第一列是"开始"第二个是"结束"。

到目前为止我尝试了什么:

select 

to_char(generate_series(min(DATE 'yesterday'),
                       max(DATE 'yesterday' + '24 hours'::interval),
                       '1 hour'::interval
                      )::timestamp, 'HH24:MI') as end

这是从00:00到00:00,但我不知道如何按照上面的方式进行分析。

请告知。

1 个答案:

答案 0 :(得分:0)

像这里一样?:

t=# select to_char(g,'HH24:MI'),to_char(g + '1 hour','HH24:MI') from generate_series(date_trunc('day',now()),date_trunc('day',now())+'1 day'::interval,'1 hour'::interval) g;
 to_char | to_char
---------+---------
 00:00   | 01:00
 01:00   | 02:00
 02:00   | 03:00
 03:00   | 04:00
 04:00   | 05:00
 05:00   | 06:00
 06:00   | 07:00
 07:00   | 08:00
 08:00   | 09:00
 09:00   | 10:00
 10:00   | 11:00
 11:00   | 12:00
 12:00   | 13:00
 13:00   | 14:00
 14:00   | 15:00
 15:00   | 16:00
 16:00   | 17:00
 17:00   | 18:00
 18:00   | 19:00
 19:00   | 20:00
 20:00   | 21:00
 21:00   | 22:00
 22:00   | 23:00
 23:00   | 00:00
 00:00   | 01:00
(25 rows)