常用的oracle时间计算

本文提供了多种在Oracle数据库中进行日期操作的方法,包括日期的加减、获取特定时间范围的起止时间等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--参数月往前推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' dayFROM dual;
--当前天减7天
SELECT  SYSDATE - INTERVAL '7' dayFROM dual;
--参数天往前推7年
SELECT  TO_DATE('2021-12-16','yyyy-mm-dd') - INTERVAL '7' yearFROM dual;
--当前天往前推7年
SELECT  SYSDATE - INTERVAL '7' yearFROM 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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值