PostgreSQL 返回的间隔值的奇怪格式
Strange format of interval value returned by PostgreSQL
我有 PostgreSQL 9.5.0,我观察到非常相似的查询返回的奇怪间隔值。我认为间隔大于 24 小时然后返回 days
部分,如下所示:
SELECT (1000 * ('2016-02-04 12:00:11'::timestamp - '2016-02-03 12:00:00'::timestamp)::interval)::interval
1000 days 03:03:20
但有时小时不会转换为天:
SELECT (1000 * ('2016-02-04 11:00:11'::timestamp - '2016-02-03 12:00:00'::timestamp)::interval)::interval
23003:03:20
如何强制使用天部分的相同输出格式?
SELECT justify_hours(1000 * ('2016-02-04 11:00:11'::timestamp - '2016-02-03 12:00:00'))
justify_hours
-------------------
958 days 11:03:20
(1 row)
或justify_interval()
:
SELECT justify_interval(1000 * ('2016-02-04 11:00:11'::timestamp - '2016-02-03 12:00:00'))
justify_interval
---------------------------------
2 years 7 mons 28 days 11:03:20
(1 row)
另请参阅:
我有 PostgreSQL 9.5.0,我观察到非常相似的查询返回的奇怪间隔值。我认为间隔大于 24 小时然后返回 days
部分,如下所示:
SELECT (1000 * ('2016-02-04 12:00:11'::timestamp - '2016-02-03 12:00:00'::timestamp)::interval)::interval
1000 days 03:03:20
但有时小时不会转换为天:
SELECT (1000 * ('2016-02-04 11:00:11'::timestamp - '2016-02-03 12:00:00'::timestamp)::interval)::interval
23003:03:20
如何强制使用天部分的相同输出格式?
SELECT justify_hours(1000 * ('2016-02-04 11:00:11'::timestamp - '2016-02-03 12:00:00'))
justify_hours
-------------------
958 days 11:03:20
(1 row)
或justify_interval()
:
SELECT justify_interval(1000 * ('2016-02-04 11:00:11'::timestamp - '2016-02-03 12:00:00'))
justify_interval
---------------------------------
2 years 7 mons 28 days 11:03:20
(1 row)
另请参阅: