oracle时间处理
--当天0点 DATE格式 2016-11-28 00:00:00 SELECT TRUNC(SYSDATE) FROM DUAL; --当天最后24点之前 默认加时间为天 2016-11-28 23:59:59 SELECT TRUNC(SYSDATE)+1-1/(24*60*60) FROM DUAL; --本月第一天 2016-11-01 00:00:00 SELECT TRUNC(SYSDATE,'MONTH') FROM DUAL; --本月最后一天 2016-11-30 00:00:00 SELECT TRUNC(LAST_DAY(SYSDATE)) FROM DUAL; --本月最后一天 24点之前 2016-11-30 23:59:59 SELECT ADD_MONTHS(TRUNC(SYSDATE,'MONTH'),1)-1/(24*60*60) FROM DUAL; --本年第一天 2016-01-01 00:00:00 SELECT TRUNC(SYSDATE,'YEAR') FROM DUAL; --本年最后一天 2016-12-31 00:00:00 SELECT ADD_MONTHS(TRUNC(SYSDATE,'YEAR'),12)-1 FROM DUAL; --本年最后一天的午时 2016-12-31 23:59:59 SELECT ADD_MONTHS(TRUNC(SYSDATE,'YEAR'),12)-1/(24*60*60) FROM DUAL; --本季度第一天 2016-10-01 00:00:00 SELECT TRUNC(SYSDATE,'Q') FROM DUAL; --本季度最后一天 2016-12-31 00:00:00 SELECT ADD_MONTHS(TRUNC(SYSDATE,'Q'),3)-1 FROM DUAL; --本季度最后一天午时 2016-12-31 23:59:59 SELECT ADD_MONTHS(TRUNC(SYSDATE,'Q'),3)-1/(24*60*60) FROM DUAL;
--本周第一天 trunc D 截取本周第一天 2016-11-28 00:00:00
--SELECT TRUNC(SYSDATE,'D')+1 FROM DUAL;
--应该采用IW来取得时间 IW是ISO标准周,返回是的当前日期所在周的周一
SELECT TRUNC(SYSDATE,'IW') FROM DUAL;
--本周最后一天 2016-12-04 00:00:00
--SELECT TRUNC(SYSDATE,'D')+7 FROM DUAL;
--应该采用IW来取得时间 IW是ISO标准周,返回是的当前日期所在周的周一
SELECT TRUNC(SYSDATE,'IW')+6 FROM DUAL;
--本周最后一天的午时 2016-12-04 23:59:59
--SELECT TRUNC(SYSDATE,'D')+8-1/(24*60*60) FROM DUAL;
--应该采用IW取得时间,IW为所在周的周一 IW是ISO标准周,返回是的当前日期所在周的周一
SELECT TRUNC(SYSDATE,'IW')+7-1/(24*60*60) FROM DUAL;