在PostreSQL中,创建一个包含日期和当前小时的时间戳相当容易:
vioozer=> SELECT to_char(NOW(), 'YYYY-MM-DD HH24:00');
to_char
------------------
2014-08-12 12:00
(1 row)
前一小时可以使用NOW()-interval '1 hour'
显示:
vioozer=> SELECT to_char(NOW()-interval '1 hour', 'YYYY-MM-DD HH24:00');
to_char
------------------
2014-08-12 11:00
(1 row)
有没有办法在过去24小时内轻松生成包含24列的表格,a-la:
vioozer=> SELECT MAGIC_FROM_STACK_OVERFLOW();
to_char
------------------
2014-08-12 12:00
2014-08-12 11:00
2014-08-12 10:00
...
2014-08-11 13:00
(24 row)
答案 0 :(得分:8)
使用generate_series()
select i
from generate_series(current_timestamp - interval '24' hour, current_timestamp, interval '1' hour) i