如果有人在20年或更长时间没有对日期进行硬编码,那将是什么表达?
在SQL
中 SELECT student_fname
FROM students
WHERE dob<'05-MAR-1995';
我在考虑使用SYSDATE
,但后来我不知道减去20年的语法。
答案 0 :(得分:28)
WHERE dob < add_months( trunc(sysdate), -12*20 );
假设您要忽略sysdate
的时间组件,将起作用。
答案 1 :(得分:2)
在 Oracle 中,NUMTOYMINTERVAL 函数正是为此用例设计的,例如
SELECT SYSDATE - NUMTOYMINTERVAL(20, 'year') FROM dual;