PostgreSQL处理时间段、时长转为秒、分、小时代码示例

2024-03-01 0 876

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

首先,举例计算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

附:postgresql时间戳与时间的转换

日期转时间戳

select EXTRACT(epoch FROM CAST( now() AS TIMESTAMP))

时间戳转日期需要注意时区

SELECT TO_TIMESTAMP(1579077961.4475)

日期相关函数

date()函数
select date(\’2018-01-01 10:20:12\’)转换为2018-01-01
to_date()函数
select to_date(\’2020-01-12 18:47:35\’,\’yyyy-MM-dd hh24:mi:ss\’) ====>2020-01-12
to_timestamp()函数
select to_timestamp(\’2020-01-12 18:47:35\’,\’yyyy-MM-dd hh24:mi:ss\’)==>2020-01-12 18:47:35+08
select to_timestamp(\’2020-01-12\’,‘\’yyyy-MM-dd\’)===>2020-01-12 00:00:00+08

总结

到此这篇关于PostgreSQL处理时间段、时长转为秒、分、小时的文章就介绍到这了,更多相关PostgreSQL转秒分小时内容请搜索悠久资源以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 PostgreSQL PostgreSQL处理时间段、时长转为秒、分、小时代码示例 https://www.u-9.cn/database/postgresql/182739.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务