ORA-00904即将执行此查询选择emp,来自emp的hiredate年份(hiredate)> 80;

时间:2017-05-15 19:46:39

标签: oracle11g

ORA-00904错误正在使用select emp,来自emp的hiredate年(hiredate)> 80;查询。

1 个答案:

答案 0 :(得分:1)

Oracle中没有year()功能。也许你想要theextract() function

select emp, hiredate from emp
where extract(year from hiredate) > 80; 

虽然你很可能不会让 80年之前雇用 - 在AD / CE的第一个世纪 - 所以这将找到每个人,而且你真的想要:

select emp, hiredate from emp
where extract(year from hiredate) > 1980;

除非你添加一个基于函数的索引,否则必须检查每一行的值;要使用该列上的现有索引,您可以这样做:

select emp, hiredate from emp
where hiredate >= date '1981-01-01';