如何在PostgreSQL中找到两个日期之间以秒为单位的日期差?
没有像SQL Server中那样以秒为单位给出日期差异的函数:
DATE_DIFF(second, '2011-12-30 09:55:56', '2011-12-30 08:54:55')
请帮我在PostgreSQL中也有这个
如何在PostgreSQL中找到两个日期之间以秒为单位的日期差?
没有像SQL Server中那样以秒为单位给出日期差异的函数:
DATE_DIFF(second, '2011-12-30 09:55:56', '2011-12-30 08:54:55')
请帮我在PostgreSQL中也有这个
首先,日期必须是timestamp
类型的值(因此,如果只是将其指定为字符串文字,请附加::timestamp
).
如果减go 两个时间戳,结果为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
仅用于将字符串文字转换为时间戳:例如,如果使用时间戳列的值,则不需要::timestamp
.