如何从sysdate中减去年数

时间:2015-03-05 22:15:54

标签: sql oracle

如果有人在20年或更长时间没有对日期进行硬编码,那将是什么表达?

在SQL

 SELECT student_fname 
 FROM students
 WHERE dob<'05-MAR-1995';

我在考虑使用SYSDATE,但后来我不知道减去20年的语法。

2 个答案:

答案 0 :(得分:28)

WHERE dob < add_months( trunc(sysdate), -12*20 );
假设您要忽略sysdate的时间组件,

将起作用。

答案 1 :(得分:2)

在 Oracle 中,NUMTOYMINTERVAL 函数正是为此用例设计的,例如

SELECT SYSDATE - NUMTOYMINTERVAL(20, 'year') FROM dual;