Je dois interroger all_objects
table où last_ddl_time='01 jan 2010'
mais il refuse le format de date ...Format Oracle last_ddl_time
Tout corps me donne le format exact pour interroger?
Je dois interroger all_objects
table où last_ddl_time='01 jan 2010'
mais il refuse le format de date ...Format Oracle last_ddl_time
Tout corps me donne le format exact pour interroger?
Vous pouvez utiliser la fonction to_date
pour formater votre date. Si vous entrez dans une chaîne littérale, Oracle tente de convertir cette chaîne en utilisant to_date
avec un format par défaut 'DD-MON-YY'
, donc votre date ressemblerait à « 01-janv.-10 ». Comme Oracle utilisera cette même fonction, vous pourriez vouloir le mettre en vous et profiter de la granularité plus fine que le formatage personnalisé peut fournir. Il est bon de noter que les dates stockées dans cette colonne ont probablement des dates plus précises, y compris les heures et les minutes, etc. Bien que vous allez prendre un peu un coup de performance, vous pouvez être mieux servi en utilisant trunc(last_ddl_time)
si vous testez avec =
.
Il y a quelques bonnes informations sur les dates dans Oracle à this link.
Comme l'a dit AKF, vous devez utiliser Trunc
à moins que vous connaissez l'heure exacte a été modifié le DDL. Votre requête que vous avez ajoutée dans les commentaires recherche tous les objets dont le DDL a été modifié au 1/1/2010 00:00:00. Essayez:
SELECT *
FROM all_objects
WHERE trunc(last_ddl_time) = to_date('01-01-2010','dd-mm-yyyy');
+1 pour mentionner l'élément de temps. – APC
Je vous suggère d'utiliser de date
literal:
where trunc(last_ddl_time) = date '2010-01-01'
SELECT *
FROM all_objects t
WHERE trunc(t.last_ddl_time, 'DD') = to_date('2010-JAN-01', 'YYYY-MON-DD');
a également essayé mais pas d'utilisation ... SELECT * FROM all_objects OÙ last_ddl_time = TO_DATE ('01 -01- 2010 ',' DD-MM-YYYY '); – ani8
"pas d'utilisation"? - qu'est-ce qui s'est passé - a-t-il donné une erreur, ou est-ce que votre machine a explosé? –