从超过1个月的Oracle表行中删除

时间:2017-04-24 13:48:53

标签: oracle sysdate

在Oracle中,我有一个DB_FLD_4定义为VARCHAR2(20 BYTE)的表,但实际上保存DATE信息,如下所示:

select DB_FLD_4 from DM_SUPDES_DISTRIB order by DB_FLD_4 desc;

4/9/2017
4/7/2017
4/6/2017

m / d / yyyy格式。

我想创建一个SP,它会删除超过1个月的表中的每一行。

我的sysdate看起来像这样:

select sysdate from dual;

SYSDATE
24-APR-17 04.41:00

请帮助操作格式以使其成为可能。

非常感谢!!!

1 个答案:

答案 0 :(得分:1)

在列上使用to_date(),然后将sysdate截断为" round"到了那一天

delete
from MyTable
where to_date(MyColumn, 'MM/DD/YYYY') < add_months(trunc(sysdate), -1)