删除Oracle中超过6年的记录

时间:2015-02-23 01:27:41

标签: sql oracle

我一直在尝试删除超过5年的记录。我正在使用sql developer并使用此查询:

DELETE FROM TBLPATIENT WHERE DATEADD(year, 4, DISCHARGE_DATE) < getdate()

&#39; discharge_date&#39;是具有日期数据类型的列名称。该命令给我这个错误,

  

命令行错误:1列:69错误报告 - SQL错误:   ORA-00904:&#34; GETDATE&#34;:无效的标识符   00904. 00000 - &#34;%s:无效标识符&#34;   *原因:
  *操作:

就像很多天一样,我正在努力解决同样的问题,改变许多命令来删除记录,但没有任何事情可以帮助我..

1 个答案:

答案 0 :(得分:2)

要在Oracle中执行此操作,您可以使用:

DELETE FROM TBLPATIENT
  WHERE DISCHARGE_DATE + INTERVAL '4' YEAR < SYSDATE;

避免在TBLPATIENT中为每个DISCHARGE_DATE添加文字可能更有效;因此,以下可能值得一试:

DELETE FROM TBLPATIENT
  WHERE DISCHARGE_DATE < SYSDATE - INTERVAL '4' YEAR;

分享并享受。