2017-09-16 206 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