Postgresql日期差异基于秒

时间:2012-11-29 13:28:08

标签: postgresql

如何在PostgreSQL中以秒为单位找到两个日期之间的日期差异?

没有像SQL-Server那样以秒为单位给出日期差异的功能:

DATE_DIFF(second, '2011-12-30 09:55:56', '2011-12-30 08:54:55')

请帮我在PostgreSQL中加载

1 个答案:

答案 0 :(得分:31)

首先,日期必须是timestamp类型的值(如果您只是将它们指定为字符串文字,则附加::timestamp。)

如果您减去两个时间戳,则结果为interval类型,其中描述了持续时间(以小时,分钟,秒等为单位)。您可以使用extract(epoch from interval_value)将时间间隔转换为绝对秒数。

所以,把所有这些放在一起:

select extract(epoch from ('2011-12-30 09:55:56'::timestamp - '2011-12-30 08:54:55'::timestamp));

请记住,仅需要::timestamp将字符串文字转换为时间戳:例如,如果您使用时间戳列的值,则不需要它。