作者 by 小楼 / 2022-04-07 / 暂无评论 / 80 个足迹
项目中碰到需要统计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
得到结果如下:
独特见解