Comment puis-je définir un format d'heure de date personnalisé dans Oracle SQL Developer?

198

Par défaut, le développeur Oracle SQL affiche les valeurs de date sous la forme 15-NOV-11. Je voudrais voir la partie temps (heure / minute / seconde) par défaut.

Existe-t-il un moyen de configurer cela dans Oracle SQL Developer?

Comfortablement engourdi
la source
J'ai déjà eu beaucoup de mal avec ça. Je peux le corriger pour une session, mais une fois que je ferme SQL Developer puis le redémarre à nouveau, je perds le paramètre. Donc, cette solution que je peux fournir n'est pas permanente.
Brett Walker
Pouvez-vous lui ajouter une réponse? @BrettWalker, c'est mieux que rien.
ComfortablyNumb
5
Quel ridicule défaut pour un type de données appelé "DATE" qui stocke en fait la précision à la seconde près. Cela a dû faire perdre beaucoup de temps aux gens.
WW.

Réponses:

398

Vous pouvez changer cela dans les préférences:

  1. Dans le menu du développeur Oracle SQL, accédez à: Outils > Préférences .
  2. Dans la boîte de dialogue Préférences , sélectionnez Base de données > NLS dans le panneau de gauche.
  3. Dans la liste des paramètres NLS, entrez DD-MON-RR HH24:MI:SSdans le champ Format de date .
  4. Enregistrez et fermez la boîte de dialogue, c'est fait!

Voici une capture d'écran:

Modification des préférences de format de date dans Oracle SQL Developer

ousoo
la source
1
J'utilise SQLDeveloper sur Linux et ce paramètre ne fonctionne pas pour moi .. d'une autre manière?
Filipe
3
Quel que soit le format que j'y mets, il est ignoré. Je vois cela être généré dans le sql: to_date ('02 -OCT-14 ',' YYYY-MM-DD ') alors maintenant mon sql est tout simplement cassé.
James Watkins
ce format ne fonctionne pas pour moi, peut-être à cause des différences de plate-forme locale ... voir ma réponse si celui-ci ne fonctionne pas
Donatello
2
où ce paramètre est-il stocké? dans la DB ou SQL Developer?
Boîte à outils du
44

Je suis tombé sur ce post en essayant de changer le format d'affichage des dates dans sql-developer. Je voulais juste ajouter à cela ce que j'ai découvert:

  • Pour modifier le format d'affichage par défaut, j'utiliserais les étapes fournies par ousoo, c'est-à-dire Outils> Préférences> ...
  • Mais souvent, je veux simplement conserver le DEFAULT_FORMAT tout en modifiant le format uniquement pendant un tas de requêtes connexes. C'est alors que je changerais le format de la session avec ce qui suit:

    alter SESSION set NLS_DATE_FORMAT = 'my_required_date_format'

Par exemple:

   alter SESSION set NLS_DATE_FORMAT = 'DD-MM-YYYY HH24:MI:SS' 
hipsandy
la source
26

Avec Oracle SQL Developer 3.2.20.09, j'ai réussi à définir le format personnalisé pour le type DATE de cette façon:

Dans: Outils> Préférences> Base de données> NLS

Ou: Outils> Préférences> Base de donées> NLS

AAAA-MM-JJ HH24: MI: SS

Capture d'écran du menu Paramètres

Notez que le format suivant ne fonctionne pas pour moi:

DD-MON-RR HH24: MI: SS

En conséquence, il conserve le format par défaut, sans aucune erreur.

Donatello
la source
3

Pour toute personne ayant encore un problème avec cela; J'ai trouvé cette page sur Google ...

Mettez-le comme ceci (paramètres NLS) ... ça colle pour moi dans SQLDeveloper v3.0.04:

DD-MON-YY HH12:MI:SS AM or for 24-Hour, DD-MON-YY HH24:MI:SS 
Jay Dorsey
la source
Il est important de noter que le jeton de format «AM» est supprimé pour le format 24 heures. Si les jetons 'AM' et 'HH24' sont utilisés, le 'AM' remplace le 'HH24'.
macawm
2

Dans mon cas, le format défini dans Préférences / Base de données / NLS était [Format date] = RRRR-MM-DD HH24: MI: SSXFF mais dans la grille, on a vu 8 format probablement par défaut RRRR / MM / DD (même sans temps) Le format a changé après avoir changé le réglage [Format date] en: RRRR-MM-DD HH24: MI: SS (sans 'XFF' à la fin).

Il n'y a pas eu d'erreur, mais le format avec xff à la fin n'a pas fonctionné.

Remarque: en notation polonaise RRRR signifie YYYY

Kapuśniak
la source
2
TL; DR: sans 'XFF' à la fin
Robert Andrzejuk
Dans Oracle, une date n'a PAS de partie de fraction de seconde. Un horodatage le fait. Ainsi, Oracle essaie d'être utile en ne vous laissant pas spécifier quelque chose qui ne fonctionnera pas.
Roy Latham
0

Lorsque j'ai copié le format de date pour l'horodatage et que je l'ai utilisé pour la date, cela n'a pas fonctionné. Mais changer le format de la date en ceci (DD-MON-YY HH12: MI: SS AM) a fonctionné pour moi.

La modification doit être effectuée dans Outils-> Préférences-> rechercher NLS

Sharan Rajendran
la source
0

Allez à Outils> Préférences. Dans l'arborescence, sélectionnez Base de données> NLS. Trois formats de date / heure sont disponibles: Date, Timestamp et Timestamp TZ. La modification du format de la date donne l'effet souhaité.

Comme je l'ai dit plus haut; cette approche ne m'a pas apporté de changement permanent.

Brett Walker
la source
jsyk, votre photo de profil me rappelle om don corleone (mauvais endroit pour un tel commentaire)
Jonathan dos Santos
0

SQL Developer version 4.1.0.19

Étape 1: Allez dans Outils -> Préférences

Étape 2: Sélectionnez la base de données -> NLS

Étape 3: Aller au format de date et entrer DD-MON-RR HH24: MI: SS

Étape 4: cliquez sur OK.

Ashutosh Chopde
la source
-1

J'ai un problème connexe que j'ai résolu et je voulais informer les gens de ma solution. À l'aide de SQL Developer, j'ai exporté d'une base de données vers csv, puis j'ai essayé de l'importer dans une autre base de données. J'ai continué à recevoir une erreur dans mes champs de date. Mes champs de date étaient au format Timestamp:

28-JAN-11 03.25.11.000000000 PM

La solution ci-dessus (modification des préférences NLS) n'a pas fonctionné pour moi lorsque j'ai importé, mais j'ai finalement obtenu le fonctionnement suivant:

Dans l'écran de définition de colonne de l'Assistant d'importation, j'ai entré " DD-MON-RR HH.MI.SSXFF AM" dans la zone Format, et il a finalement été importé avec succès. Malheureusement, j'ai des dizaines de champs de date et à ma connaissance, il n'y a aucun moyen d'appliquer systématiquement ce format à tous les champs de date, j'ai donc dû le faire manuellement .... soupir. Si quelqu'un connaît une meilleure façon, je serais heureux de l'entendre!

alexR1
la source