2017-09-16 204 views
-3

我想获取所有在当月出生的员工列表。我存储了像'16-Sep-2017'这样的日期,每当我运行我的代码时,我错误ORA-00904:“月”:无效的标识符。 这是我的代码:ORA-00904:“MONTH”:无效的标识

SELECT * from employee1 where month(birth_date)=month(now); 

SELECT * FROM employee1 WHERE month(bithdate) = MONTH(CURRENTTIME()); 

SELECT * FROM employee1 
WHERE MONTH(STR_TO_DATE(birth_date, '%d-%m-%Y')) = MONTH(NOW()); 

SELECT * FROM EMPLOYEE1 WHERE STR_TO_DATE(BIRTH_DATE,'%d-%m-%y')=MONTH(CURRENT_DATE); 

select * from employee1 
where CAST(SUBSTRING(birth_date,'%d-%m-%y')AS unsigned)=MONTH(CURRENT_DATE); 

select * from employee1 
where CAST(SUBSTRING(birth_date,'%d-%m-%y')AS varchar2)=MONTH(CURRENT_DATE); 

select * from employee1 where to_date('birthdate', 'dd-mon-yyyy')=month(current_date); 

我已经尝试了所有的可能性,但每次我有一个错误无效月标识符

+1

为什么你有一个Oracle标签的Oracle错误? “ORA-00904”是线索。如果你只是一点点Google,你可能会找到原因:'bithdate'(缺少'r')是一个实际的列名吗? –

+0

我正在使用MySQL,我有谷歌很多,但仍然无法解决它 – priyanka

+0

好吧,但我不知道你是如何使用MySQL与甲骨文的错误号? –

回答

0

的甲骨形式是提取物(从表达元件),例如选择提取物(一个月从current_date)来自双重的monthnumber;

+0

从雇员1选择emp_name,birth_date在哪里摘录(月from birth_date)=摘录(月份从当前日期); 我已经试过这段代码,它的工作原理。 – priyanka