Oracle:获取当前日期前后指定天数的日期
依据业务需求,有的时候我们可能去查询当前日期前后指定天数范围的数据,那么如何根据当前日期SYSDATE去获取指定的日期呢?以下是具体实现的方式。
方式一:
SELECT SYSDATE-INTERVAL '3' DAY as da FROM DUAL
使用该方法可指定正负,获得指定天数前后的日期,不过该日期包含当前的时间信息;
拓展:
select to_char(da,'yyyy-mm-dd')||' 23:59:59' from (SELECT SYSDATE-INTERVAL '-3' DAY as da FROM DUAL); --2023-06-23 23:59:59 select to_char(da,'yyyy-mm-dd')||' 00:00:00' from (SELECT SYSDATE-INTERVAL '-3' DAY as da FROM DUAL); --2023-06-23 00:00:00
方式二:
SELECT EXTRACT(year FROM SYSDATE)||'-'|| EXTRACT(MONTH FROM SYSDATE) ||'-'||(EXTRACT(day FROM SYSDATE) + 3) || ' 00:00:00' FROM dual; SELECT EXTRACT(year FROM SYSDATE)||'-'|| EXTRACT(MONTH FROM SYSDATE) ||'-'||(EXTRACT(day FROM SYSDATE) + 3) || ' 23:59:59' FROM dual;