如何指定3年以前的日期?

时间:2015-06-21 12:58:29

标签: sql database oracle date-difference

  

显示3年前发布的图书详情,销售量少于10000份

我的老师要求修改

Select title_id , title , pubdate , current_date-pubdate, ytd_sales
from titles;

这就是我做的事情

Select title_id , title , pubdate , current_date-pubdate, ytd_sales
from titles
where ytd_sales > 10 000;

但问题来了,我不能使用DATEADD,我意识到我的老师把 current_date - pubdate ,我想他想用其他方法但我不知道。

如果使用DATEADD它会出来

  

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

2 个答案:

答案 0 :(得分:2)

我认为这是关于这样的。

Select title_id , title , pubdate , current_date-pubdate, ytd_sales
from titles
where ytd_sales > 10 000;
AND pubdate < add_months(sysdate, -36)

答案 1 :(得分:0)

你能在下面写一下:

alter SESSION set NLS_DATE_FORMAT = 'MM-DD-YYYY HH24:MI:SS' ;

--select * from nls_session_parameters where parameter = 'NLS_DATE_FORMAT';

create table TITLES( title_id number(10), title  varchar2(20), pubdate date, ytd_sales number(10));

insert into TITLES values(101,'ABC',TO_DATE('07-13-2011','MM-DD-YYYY'),20000);    
insert into TITLES values(102,'DEF',TO_DATE('07-13-2014','MM-DD-YYYY'),90000);    
commit;

Select title_id , title , pubdate , round( (trunc(sysdate)-pubdate) /365)  years, ytd_sales
from TITLES
where ytd_sales > 10000
and  round( (trunc(sysdate)-pubdate) /365) > 3 --this will check for the pub date > 3 years
;
  

输出:

enter image description here