我试图找到两个日期之间的天数。 我尝试运行以下查询,最后出现 ORA-30076 错误。
查询是,
select extract(day from (sysdate - to_date('2009-10-01', 'yyyy-mm-dd')))
from dual
错误是,
Error at Command Line:1 Column:34
Error report:
SQL Error: ORA-30076: invalid extract field for extract source
30076. 00000 - "invalid extract field for extract source"
*Cause: The extract source does not contain the specified extract field.
但是当我试图运行时
Select extract(day from sysdate) from dual;
我得到了正确的输出。
如果有人知道我收到上述错误的原因,请提供帮助。
答案 0 :(得分:8)
从另一个日期中减去一个日期不会返回日期,它会返回一个代表天数差异的数字,因此您无法使用数据提取。
答案 1 :(得分:3)
sysdate - to_date('2009-10-01', 'yyyy-mm-dd')
会在两个日期之间提供天数 - 不需要使用extract
函数。此外,在这种情况下,extract
函数的使用是错误的,因为它会期望在from
子句之后表达日期或间隔数据类型,并且sysdate - to_date('2009-10-01', 'yyyy-mm-dd')
减法的结果是数字数据类型 - 原因是你面临的错误。
答案 2 :(得分:2)
此:
sysdate - to_date('2009-10-01', 'yyyy-mm-dd')
返回一个数字,而不是日期。您只能从日期中提取天数。