J'ai un nom de table sur oracle 12c dont le nom de colonne est "TIMESTAMP (6) WITH TIME ZONE". J'utilise SQL Developer.Erreur "AM/A.M ou PM/PM requise" si AM est utilisé
Lorsque je sélectionne quelque chose de ce nom_colonne1 en utilisant SQL Developer, je vois la date comme: 19-SEP-17 03.19.55.000000000 PM +00:00
qui est en UTC.
Si j'utilise le même format dans mon SQL et le donne comme chaîne dans la clause where cela fonctionne bien. Exemple:
select column_name1 from table_name where column_name1 = '19-SEP-17 03.19.55.000000000 PM +00:00';
Mais je sais qu'il est recommandé de convertir la chaîne à ce jour dans des situations comme celle-ci. Donc quand j'essaye de faire cela en utilisant TO_TIMESTAMP, je n'arrive pas à trouver le bon format à ajouter dans le SQL.
Ce que j'ai essayé est:
select column_name1 from table_name where column_name1 = TO_TIMESTAMP('19-SEP-17 03.19.55.000000000 PM +00:00', 'DD-MON-YYYY HH:MI:SS.FF A.M. TZH:TZM');
Et même si AM/PM est déjà là, je reçois encore erreur: AM/A.M. or PM/P.M. required
J'ai essayé d'ajouter 'nls_date_language = américain' et mais toujours avoir la même erreur.
Qu'est-ce qui me manque ici? Comment puis-je changer le format TO_TIMESTAMP afin que je puisse convertir cette chaîne en TIMESTAMP?
Merci pour la réponse et désolé de vérifier cela très tard. J'ai fini par changer le format d'affichage d'horodatage par défaut dans Oracle SQL Developer et l'ai changé en "YYYY-MM-DD HH24.MI.SSXFF" et pour l'horodatage avec le fuseau horaire "YYYY-MM-DD HH24.MI.SSXFF TZR". Je l'ai fait à partir des outils -> préférences -> Base de données -> NLS – 300
@ 300 - La plupart des développeurs préfèrent le format 24 heures (moins de confusion, moins de possibilités pour les règles ennuyeuses comme celui-ci). AM/PM serait utilisé pour les rapports «consommateurs» non technologiques. – mathguy