Maison > base de données > tutoriel mysql > Qu'est-ce que le véritable format de date par défaut dans Oracle et comment fonctionne-t-il ?

Qu'est-ce que le véritable format de date par défaut dans Oracle et comment fonctionne-t-il ?

Barbara Streisand
Libérer: 2025-01-16 16:53:11
original
1007 Les gens l'ont consulté

La vérité sur le format de date de la base de données Oracle et son mécanisme de fonctionnement

De nombreux articles affirment que le format de date par défaut d'Oracle est AAAAMMJJ, JJ/MM/AAAA ou AAAA-MM-JJ. Cependant, ce malentendu vient du fait qu’Oracle lui-même ne dispose pas de format de date prédéfini. Oracle stocke en interne les dates sous forme de valeurs binaires qui représentent l'année, le mois, le jour, l'heure, la minute et la seconde.

Lors de l'insertion d'une date dans Oracle à l'aide d'une chaîne telle que « 25-JAN-18 », Oracle tente de convertir la chaîne en une date basée sur le paramètre de session NLS_DATE_FORMAT. La valeur de NLS_DATE_FORMAT varie en fonction de la région et des paramètres de session de l'utilisateur. Par conséquent, les formats de date valides peuvent varier d’un utilisateur à l’autre et changer dynamiquement au cours d’une session.

Conversion de chaîne en date

Pour éviter de s'appuyer sur des conversions implicites, il est recommandé de convertir explicitement une chaîne en date en utilisant l'une des méthodes suivantes :

  • Date littérale : Utilisez le mot-clé DATE suivi d'une représentation de date valide, telle que DATE '2018-01-25'.
  • Horodatage littéral : Utilisez le mot-clé TIMESTAMP suivi de la date/heure complète, y compris l'heure et les fractions de seconde, par exemple TIMESTAMP '2018-01-25 01:23:45'.
  • Fonction TO_DATE : Utilisez TO_DATE('date_string', 'format_string') pour convertir une chaîne en date selon le format spécifié, tel que TO_DATE('25-JUN-18', 'DD -MON- RR').

Modifier NLS_DATE_FORMAT

Pour modifier le paramètre de session NLS_DATE_FORMAT, utilisez l'instruction suivante :

<code class="language-sql">ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';</code>
Copier après la connexion

NLS_DATE_FORMAT par défaut

Le NLS_DATE_FORMAT par défaut dépend du paramètre de session NLS_TERRITORY, qui reflète les paramètres régionaux de l'utilisateur. La requête suivante démontre la relation entre NLS_TERRITORY et NLS_DATE_FORMAT :

<code class="language-sql">...
SELECT CAST(f.format AS VARCHAR2(12)) AS format,
       LISTAGG(t.territory, ', ') WITHIN GROUP (ORDER BY t.territory) AS territories
...</code>
Copier après la connexion

L'exécution de cette requête générera une liste de valeurs NLS_DATE_FORMAT et leurs régions applicables correspondantes.

What is the True Default Date Format in Oracle and How Does it Work?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal