postgreSQL-两个时间字段相减,求时间差

作者 by 小楼 / 2022-04-07 / 暂无评论 / 215 个足迹

项目中碰到需要统计postgre数据库某个表中数据的入库时间和抓拍时间之间的时间差,解决之余 做个记录。
由于项目中入库时间和抓拍时间格式是这样的:20220407080800,所以先需要使用to__timestamp函数对其进行格式化为2022-04-07 08:08:00

to_timestamp(create_time,'yyyy-mm-dd hh24:mi:ss')

格式化后,即可进行相减运算,这里需要用到date_part函数来获取我们想要的时间

date_part函数可以用单独返回年(year)、月(month)、日(day)、小时(hour)、分钟(minute)、秒(second)

所以,最终的SQL语句如下所示:

select
date_part('hour',to_timestamp(create_time,'yyyy-mm-dd hh24:mi:ss')::TIMESTAMP - to_timestamp(shot_time,'yyyy-mm-dd hh24:mi:ss')::TIMESTAMP) as hour,
date_part('day',to_timestamp(create_time,'yyyy-mm-dd hh24:mi:ss')::TIMESTAMP - to_timestamp(shot_time,'yyyy-mm-dd hh24:mi:ss')::TIMESTAMP) as day 
from hive_face_detect_rl 
where create_time > 20220406000000 
order by hour desc 
limit 10

得到结果如下:
运算结果

独特见解