如何在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.

Postgresql相关问答推荐

在同一 Select 列表中两次使用jsonb_arrayElements()是否安全?

Postgres:创建分区需要很长时间

如何在PostgreSQL中更改分区的表空间?

supabase 中的交易

Gorm 创建表单数据文件上传错误

postgresql中多个左连接的空结果

postgres 如何计算多列哈希?

为什么这里的默认格式不同? (ISO 8601 的两种不同实现)

Windows上的psql:错误:编码UTF8的字节序列无效:0xc8 0x20

Docker - 判断 postgres 是否准备好

postgreSQL 中对 utf-8 的 LC_COLLATE 和 LC_CTYPE 支持

是否可以在 PostgreSQL 中部分刷新materialized视图?

如何正确索引多对多关联表?

docker postgres 无法从指定端口启动

如果 PostgreSQL count(*) 总是很慢,如何对复杂查询进行分页?

FOR EACH STATEMENT 触发器示例

PostgreSQL 使用 UUID 与文本作为主键

我应该在 Django DATABASE ENGINE 中使用哪个 Postgres 值?

在 postgres 中导出为 CSV 并使用 GZIP 压缩

PostgreSQL 多种认证方式