Postregsql日期差异基于秒

Sat*_*rma 23 postgresql

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

在SQL-Server中,没有像秒一样给出日期差异的功能:

DATE_DIFF(second, '2011-12-30 09:55:56', '2011-12-30 08:54:55')
Run Code Online (Sandbox Code Playgroud)

请帮我在PostgreSQL中使用它

ara*_*nid 36

首先,日期必须是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));
Run Code Online (Sandbox Code Playgroud)

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

  • 我实际上更喜欢 ANSI 文字:`timestamp '2011-12-30 09:55:56'` 而不是转换字符串值(主要是因为它们几乎适用于所有 DBMS,而且我不必记住 DBMS 特定语法) (2认同)