我是 PostgresQL 和 PHP 的新手,正在使用 PostgresQL Timestamp 对象,并试图找出现在和那个时间戳之间的差异,以年、月和日的形式显示。有这样做的吗?
谢谢!
我是 PostgresQL 和 PHP 的新手,正在使用 PostgresQL Timestamp 对象,并试图找出现在和那个时间戳之间的差异,以年、月和日的形式显示。有这样做的吗?
谢谢!
select age(now(), '2010-01-02 12:34:35');
完整版:
select substring(a from 1 for (position('days' in a) + 3))
from (select (age(now(), '2010-01-02 12:34:35'))::text) s(a)
;
substring
------------------------
2 years 4 mons 30 days
(1 row)
你可以减去两个时间戳,结果是一个interval
.
要获得“现在”,您可以使用now()
或current_timestamp
(除其他外)。
SELECT now() - '2010-02-21 20:11:32';
不过,这将显示如下内容:
830 days 23:00:50.127241
要获得合理的陈述,请使用age()
或justify_interval()
SELECT justify_interval(now() - '2010-02-21 20:11:32');
以您似乎喜欢的格式显示相同的值:
2 years 3 mons 20 days 23:01:34.095813
如果您想要特定的输出格式,请使用to_char()