我想使用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,但我不知道如何按照上面的方式进行分析。
请告知。
答案 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)