2011-04-23 45 views
2

我有這個查詢不返回任何行。但是有些記錄大於25-JUN-90的日期。爲什麼它不起作用?Oracle TO_DATE不起作用

{SELECT employee_id, last_name,hire_date 
    FROM employees WHERE hire_date > TO_DATE('25-JUN-90','dd-mon-yy');} 

回答

8

你想使用RR日期格式掩碼更改90到1990年:

SELECT employee_id, last_name,hire_date 
FROM employees WHERE hire_date > TO_DATE('25-JUN-90','dd-mon-RR'); 
+0

這看起來像答案 – Narayan 2011-04-24 06:37:21

2

哪個世紀會把'90'翻譯成? 1990年或2090年?

有關Oracle日期格式字符的一種說明,請參閱Oracle Dates and Times。由於Jeffrey Kemp的回答表明,暫時(接下來的30年左右),您可以使用格式字母'RR'從'90'得到'1990'。但是,使用4位數字的年份會更好;看來,Y2K的教訓已經被遺忘了。

+0

我得到了你的意思,我需要在1990年,但我得到像90的用戶輸入,我該怎麼解決問題? – 2011-04-23 05:29:28

+0

@need_the_buzz:看着Jeffrey Kemp的回答,看起來你需要使用'RR' - 如果你還沒有這樣做,你應該給他一個投票。 – 2011-04-23 15:13:11