oracle 獲取最近的整點、半點時間

最近須要取一個時間,就是最近的半小時整點時間,好比12點,12點半等。sql

 

第一種寫法編碼

select trunc(sysdate, 'hh24') + decode(sign(trunc(sysdate, 'mi') - trunc(sysdate, 'hh24') - 1/48), 1, 1/48, 0) t from dual;

 第二種寫法code

select trunc(sysdate, 'hh24') + decode(sign(to_number(to_char(sysdate, 'mi')) - 30), 1, 1/48, 0) t from dual;

這兩種方法用循環50W次測時間差異不大。class

這裏直接用sign取正負,再用decode編碼獲得是否須要加半小時時間。第一種寫法是時間加減,第二種寫法是取得分鐘數轉整數再作減法。date

本身記錄一下,就是不知道有沒有其餘好的寫法。select

相關文章
相關標籤/搜索