2011-04-23 47 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