oracle sql–計算某一日期到當前日期的間隔天數
如題,是在工作中遇到的一個報表需求問題。用戶需要查詢“創建時間到當下的天數”,于是我這個可憐的打工仔就開始干活了。。。(苦澀ing)我發現oracle sql的自帶函數和普通的sql貌似還有些不大一樣,有點不通用呢
首先,要解決獲取系統當前時間–to_char()
to_char(sysdate,'yyyy/mm/dd hh24:mi:ss')
這個函數的時間格式大家可以隨意調整,根據自己的需求靈活變更即可。
以下是一部分時間格式的舉例
select sysdate,to_char(sysdate,'yyyy-mm-dd')from dual;select sysdate,to_char(sysdate,'yyyy/mm/dd')from dual;select sysdate,to_char(sysdate,'yyyymmdd')from dual;select sysdate,to_char(sysdate,'yyyymmdd hh24:mi:ss')from dual;
第二,完成間隔天數的計算–用減法即可
to_date(to_char(sysdate,'yyyy/mm/dd hh24:mi:ss'),'yyyy/mm/dd hh24:mi:ss')-to_date('2024/05/19 23:54:35','yyyy/mm/dd hh24:mi:ss')
為方便我用了’2024/05/19 23:54:35’這個固定時間舉例,大家可以按需替換成對應格式的參數字段
最后,我還需要將計算結果保留兩位小數–TRUNC()
TRUNC('參數',number)
select TRUNC(to_date(to_char(sysdate,'yyyy/mm/dd hh24:mi:ss'),'yyyy/mm/dd hh24:mi:ss')-to_date('2024/05/19 23:54:35','yyyy/mm/dd hh24:mi:ss'),2) from dual;
‘參數’為原數據,number是保留的小數位數
…
以上僅代表個人見解,如有更好的方法或者大家發現我有錯誤的地方,歡迎在評論區做補充哦~