删除过去6个月Oracle的记录

时间:2017-10-16 13:55:21

标签: sql oracle

我正在尝试删除ORACLE表格中过去6个月的所有记录。

我目前有

delete from table t 
where to_date(substr(t.DATE_SENT,1,10),'MM/DD/YYYY')  < add_months(trunc(sysdate), -6);

此表格中的字符串格式为'12/21/2015 12:00:00 AM'

注意我明白这应该是DATETIME而不是varchar2,但它恰好是一个varchar2,所以我现在试图找到一个解决它的工作。

此查询似乎在某种程度上适用于select *但随后崩溃了SQL

  

错误:ORA-01830:日期格式图片在转换整个输入字符串之前结束

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

不需要SUBSTR。直接在格式上使用TO_DATE

DELETE FROM t
      WHERE TO_DATE (t.DATE_SENT, 'MM/DD/YYYY HH:MI:SS AM') <
               ADD_MONTHS (TRUNC (SYSDATE), -6);