写在前面
在使用Oracle数据开发的时候,经常会使用到Oracle的日期的查询。
以下总结有关Oracle日期查询相关。
一、年、月、日、季、周
1.年
SELECT TO_CHAR(SYSDATE,'YYYY') FROM DUAL;
2.月
SELECT TO_CHAR(SYSDATE,'MM') FROM DUAL;
3.日
SELECT TO_CHAR(SYSDATE,'DD') FROM DUAL;
4.季
SELECT TO_CHAR(SYSDATE,'Q') FROM DUAL;
5.周
SELECT TO_CHAR(SYSDATE,'IW') FROM DUAL;
二、EXTRACT 年、月、日
1.年
SELECT EXTRACT(YEAR FROM SYSDATE)||'年' FROM DUAL;
2.月
SELECT EXTRACT(MONTH FROM SYSDATE)||'月' FROM DUAL;
3.日
SELECT EXTRACT(DAY FROM SYSDATE)||'日' FROM DUAL;
三、上个星期一到星期天
SELECT
TO_CHAR(SYSDATE,'yyyymmdd')-TO_NUMBER(TO_CHAR(SYSDATE,'d')-1)-6,
TO_CHAR(SYSDATE,'yyyymmdd')-TO_NUMBER(TO_CHAR(SYSDATE,'d')-1) FROM DUAL;
四、1分钟前、1小时前、1月前、1年前
1.一分钟前
SELECT TO_CHAR(SYSDATE-INTERVAL '1' MINUTE,'YYYY-MM-DD HH24:MI:SS') FROM DUAL;
2.1小时前
SELECT TO_CHAR(SYSDATE-INTERVAL '1' HOUR,'YYYY-MM-DD HH:24:MI:SS') FROM DUAL;
3.1月前
SELECT TO_CHAR(SYSDATE-INTERVAL '1' DAY,'YYYY-MM-DD HH:24:MI:SS') FROM DUAL;
4.1年前
SELECT TO_CHAR(SYSDATE-INTERVAL '1' YEAR,'YYYY-MM-DD HH24:MI:SS') FROM DUAL;
五、当月、上月、当天、前天
1.当月
SELECT TO_CHAR(ADD_MONTHS(SYSDATE,0),'YYYY-MM-DD') FROM DUAL;
2.上月
SELECT TO_CHAR(ADD_MONTHS(SYSDATE,-1),'YYYY-MM-DE') FROM DUAL;
3.当天
SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD') FROM DUAL;
4.前天
SELECT TOCHAR(SYSDATE-1,'YYYY-MM-DD') FROM DUAL;