Oracle的日期展示,该日期和安装Oracle服务所在机器的系统时间有关(所以想获取实时当前正确的数据,必须确保服务器系统时间正确)
格式化:
本月第一天和最后一天
select to_char(trunc(sysdate,'MM'),'yyyymmdd') from dual;
select to_char(last_day(sysdate), 'yyyymmdd') from dual;
本周
当前时间:和当前时间往前推7天(跟星期几无关)
SELECT to_char(trunc(sysdate) - 6,'yyyyMMdd') FROM DUAL;
select trunc(sysdate) FROM DUAL;
和星期几有关,星期一算是第一天,星期天最后一天(第一种写法)
SELECT to_char(TRUNC(sysdate,'IW'),'yyyyMMdd') FROM DUAL
SELECT to_char(TRUNC(sysdate,'IW') + 6,'yyyyMMdd') FROM DUAL;
第二种写法
select to_char(trunc(sysdate,'d')+1,'yyyyMMdd') from dual;
select to_char(trunc(sysdate,'d')+7,'yyyyMMdd') from dual
当年时间:select to_char(sysdate,'yyyy') from dual;
当年的第一天和最后一天:
select to_char(trunc(sysdate,'yy'),'yyyyMMdd') FROM DUAL;
select to_char(last_day(add_months(trunc(SYSDATE,'y'),11)),'yyyyMMdd') from dual
季度的第一天和最后一天
select to_char(trunc(sysdate,'Q'),'yyyyMMdd')from dual
select to_char(add_months(trunc(sysdate,'Q'),3)-1,'yyyyMMdd') from dual