看到一個題目有一點意思,和大家分享。
如果sysdate 不是本月1號而且處於早上5點以前,那麼返回前一天的日期。
該題目主要用到decode()的方法,判斷是否5點以後,用sign()和 decode()結合起來判斷。
select
to_char( sysdate, 'dd' ), '01' ,sysdate, ----------------判斷是否1號
decode( sign( 5 - to_char( sysdate, 'HH24' ) ) , 1, --------------------判斷是否5點以前
sysdate - 1, sysdate) )
from dual