--参数月往前推11个月
SELECT TO_CHAR(ADD_MONTHS(TO_DATE('2021-12','yyyy-mm'),-11),'yyyy-mm') 月 FROM dual;
--当前月往前推11个月
SELECT TO_CHAR(ADD_MONTHS(SYSDATE,-11),'yyyy-mm') 月 FROM dual;
--参数月往后推11个月
SELECT TO_CHAR(ADD_MONTHS(TO_DATE('2021-12','yyyy-mm'),11),'yyyy-mm') 月 FROM dual;
--当前月往后推11个月
SELECT TO_CHAR(ADD_MONTHS(SYSDATE,11),'yyyy-mm') 月 FROM dual;
--参数天减7天
SELECT TO_DATE('2021-12-16','yyyy-mm-dd') - INTERVAL '7' day 天 FROM dual;
--当前天减7天
SELECT SYSDATE - INTERVAL '7' day 天 FROM dual;
--参数天往前推7年
SELECT TO_DATE('2021-12-16','yyyy-mm-dd') - INTERVAL '7' year 年 FROM dual;
--当前天往前推7年
SELECT SYSDATE - INTERVAL '7' year 年 FROM dual;
--取周的开始时间和结束时间:
--开始时间(以星期一为开始时间):
SELECT trunc(SYSDATE,'D')+1 FROM dual;
--结束时间(以星期日为结束时间):
SELECT trunc(SYSDATE,'D')+7 FROM dual;
--取月的开始时间和结束时间:
--月初时间:
SELECT trunc(SYSDATE,'MM') FROM dual;
--月末时间:
SELECT last_day(SYSDATE) FROM dual;
--取季的开始时间和结束时间:
--季初时间:
SELECT trunc(SYSDATE,'Q') FROM dual;
--季末时间:
SELECT ADD_MONTHS(trunc(SYSDATE,'Q'),3)-1 FROM dual;
--参数时间的季度的开始月和结束月
SELECT
TO_CHAR(TRUNC(TO_DATE('2022-06-01', 'YYYY-MM-DD'), 'Q'), 'YYYY-MM') AS start_month,
TO_CHAR(TRUNC(ADD_MONTHS(TO_DATE('2022-06-01', 'YYYY-MM-DD'), 3), 'Q') - 1, 'YYYY-MM') AS end_month
FROM
DUAL;
--取年的开始时间和结束时间:
--年初时间:
SELECT trunc(SYSDATE,'yyyy') FROM dual;
--年末时间:
SELECT ADD_MONTHS(trunc(SYSDATE,'yyyy'),12)-1 FROM dual;
常用的oracle时间计算
于 2021-12-18 10:15:48 首次发布