postger中實現oracle中trunc日期處理功能

問題描述

  需要將下面的oracle中的sql轉化成poetger的sql,由於end_time和start_time屬於date類型,相加減得出為天,乘24再乘3600得出秒數,如果是時間不為整天會得出浮點數。

select (TRUNC((a.end_Time  -  a.start_time)*24*3600)) as interval from table_name a

 

轉化後postger的sql語句

  由於oracle中的date帶上了時分秒,所以表中字段對應postger中timestamp類型,兩者相加減直接得出秒數

select EXTRACT(EPOCH FROM a.end_time)  -  EXTRACT(EPOCH FROM a.start_time) as interval from table_name as a
EPOCH FROM的作用將timestamp轉化成數字時間戳(postger這點很奇怪,timestamp翻譯為時間戳,不就是數字類型秒數嗎,但是人家打印出來就是格式化的時間)
EXTRACT的作用是從一个日期或时间型的字段内抽取年、月、日、时、分、秒数据
posted @ 2023-07-20 10:39  仗剑煮大虾  阅读(26)  评论(0编辑  收藏  举报