2011-04-23 3 views
2

J'ai cette requête qui ne renvoie aucune ligne. Mais il y a des enregistrements qui datent du 25 juin 1990. Pourquoi ça ne marche pas?Oracle TO_DATE ne fonctionne pas

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

Répondre

8

Vous voulez utiliser le masque de format de date de RR changer 90 à 1990:

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

Cela ressemble à la réponse – Narayan

2

Quel siècle traduit-il en '90 '? 1990 ou 2090?

Voir Oracle Dates and Times pour une description des caractères de format de date Oracle. Comme la réponse de Jeffrey Kemp suggère, pour le moment (les 30 prochaines années environ), vous pouvez obtenir '1990' à partir de '90' en utilisant les lettres de format 'RR'. Cependant, il serait préférable d'utiliser des années à 4 chiffres; Les leçons de l'an 2000 ont déjà été oubliées, semble-t-il.

+0

Je suis ce que vous entendez, ce que je dois en 1990 mais je reçois l'entrée d'utilisateur comme 90, comment puis-je résoudre le problème? –

+0

@need_the_buzz: en regardant la réponse de Jeffrey Kemp, il semble que vous devez utiliser 'RR' - et vous devriez lui donner un vote up si vous ne l'avez pas déjà fait. –

Questions connexes