作者:hemingwang0902
轉自:https://blog.csdn.net/hemingwang0902/article/details/5272739
--取得當天0時0分0秒
select TRUNC(SYSDATE) FROM dual;
--取得當天23時59分59秒(在當天0時0分0秒的基礎上加1天后再減1秒)
SELECT TRUNC(SYSDATE)+1-1/86400 FROM dual;
--取得當前日期是一個星期中的第幾天,注意:星期日是第一天
select to_char(sysdate,'D'),to_char(sysdate,'DAY') from dual;
--在oracle中如何得到當天月份的第一天和最後一天
select to_char(sysdate,'yyyy-mm')||'-01' firstday,to_char(last_day(sysdate),'yyyy-mm-dd') lastday from dual
--實現當天16點前數據減去昨天16點的,過了16點減去今天16點
select field1, field2 from mytable
where time = decode(sign(sysdate-trunc(sysdate)-16/24), --時間判斷
-1,trunc(sysdate)-1+16/24, --小於16點取昨天16點
trunc(sysdate)+16/24) --大於16點取當天16點