PostgreSQL处理时间段、时长转为秒、分、小时

文章讲述了如何在数据库查询中计算两个时间点之间的时长,例如从2023年4月19日10点到2023年4月20日22点30分,然后将这个时长转换为秒、分和小时。使用的方法是通过SQL的date_part和epoch函数,以及进行数学运算来实现,还提到了结果的取整和保留小数位操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果要计算某个时间点到某个时间点的时长或时间段是多少,并且要转换为秒、分、小时的话,我们可以按下面的例子处理

首先,举例计算2023年4月19日10点整 到2023年4月20日22点00分30秒的时长

SELECT '2023-04-20 22:00:30'::TIMESTAMP - '2023-04-19 10:00:00'::TIMESTAMP;

结果为:1 day 12:00:30

现在将结果转换为秒、分、小时

SELECT date_part('epoch','2023-04-20 22:00:30'::TIMESTAMP - '2023-04-19 10:00:00'::TIMESTAMP) 时长转为秒;

结果为:129630

SELECT date_part('epoch','2023-04-20 22:00:30'::TIMESTAMP - '2023-04-19 10:00:00'::TIMESTAMP)/60 时长转为分;

结果为:2160.5

SELECT date_part('epoch','2023-04-20 22:00:30'::TIMESTAMP - '2023-04-19 10:00:00'::TIMESTAMP)/60/60 时长转为小时;

结果为:36.0083333333333

我们也可以对上面的结果进行取整(floor函数)或保留小数点后N位(round函数)处理

SELECT floor((date_part('epoch','2023-04-20 22:00:30'::TIMESTAMP - '2023-04-19 10:00:00'::TIMESTAMP)/60/60)) 时长转为小时并取整;

 结果为:36

SELECT round((date_part('epoch','2023-04-20 22:00:30'::TIMESTAMP - '2023-04-19 10:00:00'::TIMESTAMP)/60/60)::NUMERIC,2) "时长转为小时并保留2位";

结果为:36.01

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值