我有一个大学项目,并且有一个带有入院和出院日期属性的病人表。我需要删除7年以上的记录,我使用了以下代码:

delete from patient
where dis_date >= datedadd(yy,-7,getdate());

我得到了错误

“ORA-00904:“DATEADD”无效标识符”

。 DATEDIFF函数也是如此。有其他选择吗?

最佳答案

在Oracle中执行此操作的典型方法是:

DELETE FROM patient
 WHERE dis_date < TRUNC(ADD_MONTHS(SYSDATE, -7*12));

我建议使用ADD_MONTHS()而不是年份间隔的原因是ADD_MONTHS()是leap年安全的。

关于sql - 当我输入dateadd或datediff代码时,我总是收到此错误“ORA-00904 ”DATEADD“INVALID IDENTIFIER.”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29145825/

10-09 06:40
查看更多