PostgreSQL处理时间段、时长转为秒、分、小时代码示例
如果要计算某个时间点到某个时间点的时长或时间段是多少,并且要转换为秒、分、小时的话,我们可以按下面的例子处理
首先,举例计算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转秒分小时内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
PostgreSQL三种自增列sequence,serial,identity的用法区别
这篇文章主要介绍了PostgreSQL三种自增列sequence,serial,identity的用法区别,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2021-02-02基于PostgreSQL pg_hba.conf 配置参数的使用说明
这篇文章主要介绍了基于PostgreSQL pg_hba.conf 配置参数的使用说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2021-01-01CVE-2019-9193之PostgreSQL 任意命令执行漏洞的问题
这篇文章主要介绍了CVE-2019-9193:PostgreSQL 任意命令执行漏洞,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-08-08
最新评论