1
select LASTCHANGEDATE 
from ROH_TRANSFER 
where LASTCHANGEDATE BETWEEN to_char(sysdate,'yyyy/mm/dd') - INTERVAL '10' DAY AND to_char(sysdate,'yyyy/mm/dd');

对于上述查询,我​​收到以下错误:

where LASTCHANGEDATE BETWEEN to_char(sysdate,'yyyy/mm/dd') - INTERVAL '10' DAY AND to_char(sysdate,'yyyy/mm/dd')
                             *
ERROR at line 1:
ORA-30081: invalid data type for datetime/interval arithmetic

请帮我解决这个问题..!

注意:这是我的 LASTCHANGEDATE 列内容的样子:

LASTCHANGEDATE
--------------------------------
2016/11/09 02:10:01.066
2016/11/09 18:08:09.319
4

2 回答 2

2

在执行算术运算或比较之前,您不需要将 DATE 转换为 CHAR/VARCHAR

所以试试:

select LASTCHANGEDATE 
  from ROH_TRANSFER 
 where LASTCHANGEDATE between sysdate - INTERVAL '10' DAY AND sysdate;

或者如果你想截断当前日期

select LASTCHANGEDATE 
  from ROH_TRANSFER 
 where LASTCHANGEDATE between trunc(sysdate, 'DDD') - INTERVAL '10' DAY AND trunc(sysdate, 'DDD');
于 2016-11-10T06:02:30.387 回答
1

可能你想这样做:

select LASTCHANGEDATE from ROH_TRANSFER where LASTCHANGEDATE BETWEEN to_char(sysdate - INTERVAL '10' DAY,'yyyy/mm/dd') AND to_char(sysdate,'yyyy/mm/dd')
于 2016-11-10T06:20:21.387 回答