I have a university project and I have a patient table with admission and discharge date attributes. I need to delete records that are older than 7 years, I used the following code :
delete from patient
where dis_date >= datedadd(yy,-7,getdate());
I get the error
"ORA-00904: "DATEADD" invalid identifier"
. It's the same with the DATEDIFF function. Any alternatives please?
The typical way of doing this in Oracle would be:
DELETE FROM patient
WHERE dis_date < TRUNC(ADD_MONTHS(SYSDATE, -7*12));
The reason I suggest using ADD_MONTHS()
instead of year intervals is that ADD_MONTHS()
is leap-year safe.