Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment changer le format de date dans la base de données Oracle

Nous avons souvent besoin de changer le format de la date lors de la vérification. Voici quelques façons que vous pouvez utiliser pour changer le format de date dans la base de données Oracle

Format de date par défaut d'Oracle

Le format de date par défaut dans Oracle est contrôlé par la valeur du paramètre NLS_DATE_FORMAT.

La requête suivante peut être utilisée pour trouver la valeur actuelle du paramètre NLS_DATE_FORMAT

SELECT
  value
FROM
  V$NLS_PARAMETERS
WHERE
  parameter = 'NLS_DATE_FORMAT';

Comment changer le format pour toute la session

Nous pouvons modifier le paramètre dans la session et choisir le format que nous voulons pour la date Oracle. Voici le sql qui peut être utilisé pour faire dans la session

ALTER SESSION SET NLS_DATE_FORMAT = '[date_format]';
MM  Numeric month (e.g., 07)
MON     Abbreviated month name (e.g., JUL)
MONTH   Full month name (e.g., JULY)
DD  Day of month (e.g., 24)
DY  Abbreviated name of day (e.g., FRI)
YYYY    4-digit year (e.g., 1998)
YY  Last 2 digits of the year (e.g., 98)
RR  Like YY, but the two digits are ``rounded'' to a year in the range 1950 to 2049. Thus, 06 is considered 2006 instead of 1906
AM (or PM)  Meridian indicator
HH  Hour of day (1-12)
HH24    Hour of day (0-23)
MI  Minute (0-59)
SS  Second (0-59)

Exemple

alter session set nls_date_format = 'dd-mon-yyyy hh24:mi:ss';

Maintenant, quelle que soit la requête que vous exécuterez, la colonne de date sera formatée selon le format de date ci-dessus

Example
select sysdate from dual;

Comment changer le format de date à l'aide de la fonction to_char

Nous voudrons peut-être avoir un format de date différent pour les différentes requêtes sql. Dans ce cas, vous pouvez prévoir d'utiliser la fonction Oracle à ligne unique to_char et pouvez convertir la colonne de données Oracle dans le format de votre choix

Example
select to_char(sysdate, 'dd-mon-yyyy hh24:mi:ss')  from dual; 
select to_char(sysdate, 'dd-mon-yyyy')  from dual;  

Comment changer le format de date en utilisant la fonction to_date

Nous voudrons peut-être changer les chaînes au format de date à des fins de comparaison, pour les stocker en tant que date dans la table Oracle. Dans ce cas, vous pouvez utiliser la fonction Oracle to_date

 Example
select to_date('11-JAN-2019 13:12:12', 'dd-mon-yyyy hh24:mi:ss')  from dual; 
select to_date( '11-JAN-2019', 'dd-mon-yyyy')  from dual;   

La chose importante à noter :la chaîne est convertie en une date et la date est renvoyée au format de date par défaut dans l'instruction select. Si vous utilisez la fonction to_date pour stocker des chaînes en tant que date dans la colonne de date, celle-ci sera stockée uniquement en tant que date. Maintenant, lorsque vous sélectionnez cette colonne, la date sera affichée dans le format de date par défaut d'Oracle défini dans la session.

Comment formater la date pour afficher le jour, la semaine, les mois, etc.

 Day of Week
 SQL> select to_char(sysdate,'D') col from dual; 
 col
----
 2

 Name of WeekDay
 SQL> select to_char(sysdate,'DAY') col from dual;
 col
---
MONDAY
 
Abbreviated name of day
 SQL> select to_char(sysdate,'DY') from dual;
 col
----
 MON
 
Day of Month
 SQL> select to_char(sysdate,'DD') from dual;
 col
----
 30
 
Abbreviated name of month
 SQL> select to_char(sysdate,'MON') from dual;
 col
----
 NOV
 
Name of Month
 SQL> select to_char(sysdate,'MONTH') from dual;
 col
-----
NOVEMBER

Day of Year
SQL> select to_char(sysdate,'DDD') from dual;
 col
----
 334
 
Week of the year
SQL> select to_char(sysdate,'IW') from dual;
 col
----
 05

Week of Month
 SQL> select to_char(sysdate,'W') from dual;
 col
-----
 5

Month in Numbers
SQL> select to_char(sysdate,'MM') from dual;
 col
----
 11

Year in Numbers
SQL> select to_char(sysdate,'YYYY') from dual;
 col
----
 2019
 
Year in words
SQL> select to_char(sysdate,'YEAR') from dual;
col
---
TWENTY NINE

Hour in 0-12 format
SQL> select to_char(sysdate,'HH') from dual'
col
----
08

Hour in 0-24 format
SQL> select to_char(sysdate,'HH24') from dual;
col
---
 12

Minutes
 SQL> select to_char(sysdate,'MI') from dual;
 col
----
 45
 
Seconds
 SQL> select to_char(sysdate,'SS') from dual;
 col
----
 45
 

J'espère que vous aimez ces étapes simples sur la façon de changer le format de date dans la base de données Oracle. Il peut y avoir de nombreux exemples où cela peut être utilisé. Je viens de donner quelques exemples simples pour démontrer la fonctionnalité

Lire aussi
Fonctions de date Oracle : Cet article couvre les fonctions de date Oracle, la différence de date Oracle en années, la différence de date Oracle en jours, la différence de date Oracle en mois.
Fonction NULLIF dans Oracle :la fonction NULLIF dans Oracle compare deux valeurs et renvoyer null si les valeurs sont identiques, sinon renvoyer la première valeur. base de données Oracle. La mise à jour peut être exécutée de plusieurs manières obtenir les métadonnées d'une table dans oracle :découvrez comment obtenir la définition de la table dans oracle, oracle afficher la définition de l'index, obtenir le ddl de la vue matérialisée dans oracle, obtenir la requête d'une vue dans oracle
http://infolab.stanford .edu/~ullman/fcdb/oracle/or-time.html