看到一个题目有一点意思,和大家分享。
如果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