oracle查询三个月前的时间

错误写法

-- 错误写法
select sysdate - interval '3' month  from dual;

之前从网上找的,当时也认为没有什么不妥的地方,三个月前的时间不正是当前时间再减去三个月嘛,没毛病。然后今天2019-12-31就出现问题了,当前时间减去三个月,就是9月31了,问题是,9月份只有30天呀,所以就报错了,报错信息如下图。所以这种写法不可取,经一事长一智,当时没考虑周全

image-20191231115948809.png

正确写法

-- 正确写法
select add_months(sysdate,-3) from dual;
  • oracle查询三个月前的时间+7天(这个可能不太标准)
select add_months(sysdate,-3) + interval '7' day from dual;

你可能感兴趣的:(oracle查询三个月前的时间)