我有一个大学项目,并且有一个带有入院和出院日期属性的病人表。我需要删除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/