【发布时间】:2022-01-14 06:31:33
【问题描述】:
我正在使用以下查询生成一个时间序列。
SELECT date_trunc('hour', dd):: TIMESTAMP WITHOUT TIME zone as time_ent
FROM generate_series ( '2021-12-02 11:49:26'::timestamp
, '2021-12-09 11:49:26'::timestamp
, '120 min'::interval) dd
它会给我如下输出。
2021-12-02 11:00:00.000
2021-12-02 13:00:00.000
2021-12-02 15:00:00.000
2021-12-02 17:00:00.000
2021-12-02 19:00:00.000
但我需要类似的输出。
2021-12-02 12:00:00.000
2021-12-02 14:00:00.000
2021-12-02 16:00:00.000
2021-12-02 18:00:00.000
2021-12-02 20:00:00.000
目前,时间序列小时数取决于我通过的时间戳。在上面它给了我像 11,13,15 这样的奇数小时......但我希望在任何情况下像 12,14,16 这样的偶数小时......它不应该取决于我在查询中传递的时间strong>'2021-12-02 11:49:26'::timestamp, '2021-12-09 11:49:26'::timestamp
【问题讨论】:
-
您使用的是 MySQL 还是 Postgresql? (上述查询不会在两者上运行。)
-
我正在使用 Postgresql
-
你有没有想过使用一个函数,它提取小时并获取小时的mod,如果是1,那么它加1,如果是0那么它很好,可以输出。
-
@DivyeshJesadiya 你是说这个吗? dbfiddle.uk/…
标签: sql postgresql