Tutoriel pour DBA Oracle
On janvier 1, 2022 by adminFonctions et opérateurs de date.
Pour voir la date et l’heure du système, utilisez les fonctions suivantes :
CURRENT_DATE :renvoie la date actuelle dans le fuseau horaire de la session, dans une valeur du calendrier grégorien de type de données
DATE
SYSDATE :Renvoie la date et l’heure actuelles.
SYSTIMESTAMP :La fonction SYSTIMESTAMP renvoie la date du système, y compris les secondes fractionnelles et le fuseau horaire
de la base de données. Le type de retour est TIMESTAMP AVEC FUSEAU HORAIRE.
SYSDATE Exemple
Pour voir la date et l’heure système actuelles, donnez la requête suivante :
select sysdate from dual;
SYSDATE
——-
8-AUG-03
Le format dans lequel la date est affichée dépend du paramètre NLS_DATE_FORMAT.
Par exemple, définissez le NLS_DATE_FORMAT au format suivant
alter session set NLS_DATE_FORMAT=’DD-MON-YYYY HH:MIpm’;
Puis donnez l’instruction suivante
select sysdate from dual;
SYSDATE
——————
8-AUG-2003 03 :05pm
Le paramètre par défaut de NLS_DATE_FORMAT est DD-MON-YY
CURRENT_DATE Exemple
Pour voir la date et l’heure actuelles du système avec le fuseau horaire, utilisez la fonction CURRENT_DATE
ALTER SESSION SET TIME_ZONE = ‘-4 :0’;
ALTER SESSION SET NLS_DATE_FORMAT = ‘DD-MON-YYYY HH24:MI :SS’;
SELECT SESSIONTIMEZONE, CURRENT_DATE FROM DUAL;
SESSIONTIMEZONE CURRENT_DATE
————— ——————–
-04:00 22-APR-2003 14:15:03
ALTER SESSION SET TIME_ZONE = ‘-7:0’;
SELECT SESSIONTIMEZONE, CURRENT_DATE FROM DUAL;
SESSIONTIMEZONE CURRENT_DATE
————— ——————–
-07 :00 22-APR-2003 09:15:33
SYSTIMESTAMP Exemple
Pour voir la date et l’heure actuelles du système avec les secondes fractionnelles avec le fuseau horaire donner l’instruction suivante
select systimestamp from dual;
SYSTIMESTAMP
——————————-
22-APR-03 08.38.55.538741 AM -07:00
Modèles de format de date
Pour traduire la date en une chaîne de format différente, vous pouvez utiliser la fonction TO_CHAR avec le format de date. Par exemple pour voir le jour actuel vous pouvez donner la requête suivante
Select to_char(sysdate, ‘DAY’) « Today » FROM DUAL ;
JOURNAL
——-
JOURNAL
Pour traduire une valeur de caractère, qui est dans un format autre que le format de date par défaut, en une valeur de date, vous pouvez utiliser la fonction TO_DATE avec le format de date à date
Comme ce modèle de format « DAY », il existe de nombreux autres modèles de format de date disponibles dans Oracle. Le tableau suivant liste les modèles de format de date.
FORMAT |
MEANING |
D |
Jour de la semaine |
DD |
Jour du mois |
JJJ |
Jour de l’année |
DAY |
Jour complet pour ex. ‘Monday’, ‘Tuesday’, ‘Wednesday’ |
DY |
Jour en trois lettres pour ex. ‘MON’, ‘TUE’,’FRI’ |
W |
Semaine du mois |
WW |
Semaine de l’année |
MM |
Mois en deux chiffres (1-.Jan, 2-Feb,…12-Dec) |
MON |
Mois en trois caractères comme « Jan », « Feb », « Apr » |
MONTH |
Mois complet comme « January », « février », « avril » |
RM |
Mois en caractères romains (I-XII, I-Jan, II-Feb,….XII-Dec) |
Q |
Quart du mois |
YY |
Deux derniers chiffres de l’année. |
YYYY |
Année complète |
YEAR |
Année dans des mots comme « Nineteen Ninety Nine » |
HH |
Heures au format 12 heures |
HH12 |
Heures au format 12 heures |
H24 |
Heures au format 24 heures |
MI |
Minutes |
SS |
Secondes |
FF |
Secondes fractionnelles |
SSSSS |
Millisecondes |
J |
Jour Julien i.c’est-à-dire les jours depuis le 1er janvier 4712 avant J.-C. jusqu’à aujourd’hui |
RR |
Si l’année est inférieure à 50, on considère que l’année est le 21ème siècle. Si l’année est supérieure à 50, suppose l’année au 20ème siècle. |
suffixes
TH |
Retourne le th, st, rd ou nd selon le nombre de tête comme 1st , 2ème 3ème 4ème |
SP |
Enonce le nombre de tête |
AM ou… PM |
Retourne AM ou PM selon l’heure |
SPTH |
Retourne le nombre ordinal épelé. Pour . Exemple Premier, Quatrième |
Par exemple pour voir la date d’aujourd’hui dans le format suivant
Vendredi, 7 mars, 2014
Donnez l’instruction suivante
select to_char(sysdate, ‘Day, ddth Month, yyyy’) « Today » from dual ;
JOURNAL
————————
Vendredi 7 mars 2014
Par exemple, vous voulez voir les dates d’embauche de tous les employés au format suivant
Vendredi 8 août 2003
Donnez alors la requête suivante .
select to_char(hire_date, ‘Day, ddth Month, yyyy’) from emp;
TO_DATE Exemple
La fonction To_Date est utilisée pour convertir des chaînes de caractères en valeurs de date. Par exemple vous voulez voir quel était le jour du 15-aug-1947. L’utilisation de la fonction to_date pour d’abord convertir la chaîne de caractères en valeur de date et ensuite passer cette valeur à la fonction to_char pour extraire le jour.
sélectionner to_char(to_date(’15-aug-1947′,’dd-mon-yyyy’), ‘Day’)
de dual ;
TO_CHAR(
——–
Vendredi
Pour voir combien de jours se sont écoulés depuis le 15-aug-1947 alors donnez la requête suivante
select sysdate-to_date(’15-aug-1947′,’dd-mon-yyyy’) from dual ;
Maintenant nous voulons voir quelle date se produira après 45 jours à partir de maintenant
select sysdate+45 from dual ;
SYSDATE
——-
06-JUN-2003
ADD_MONTHS
Pour voir quelle date se produira après 6 mois à partir de maintenant, nous pouvons utiliser la fonction ADD_MONTHS
Sélectionner ADD_MONTHS(SYSDATE,6) à partir de dual ;
ADD_MONTHS
———-
22-OCT-2003
MONTHS_BETWEEN
Pour savoir combien de mois se sont écoulés depuis une date particulière, utilisez la fonction MONTHS_BETWEEN.
Par exemple, pour voir combien de mois se sont écoulés depuis le 15-aug-1947, donnez la requête suivante.
select months_between(sysdate,to_date(’15-aug-1947′)).
from dual;
Months
——
616.553
Pour éliminer la valeur décimale, utilisez la fonction truncate
select trunc(months_between(sysdate,to_date(’15-aug-1947′)))
from dual ;
Mois
——
616
DERNIER JOUR
Pour voir le dernier jour du mois d’une date donnée, utilisez la fonction LAST_DAY.
select LAST_DAY(sysdate) from dual;
LAST_DAY
——–
31-AUG-2003
NEXT_DAY
Pour voir quand un jour particulier arrive le prochain , utilisez la fonction NEXT_DAY.
Par exemple pour voir quand le samedi prochain arrive, donnez la requête suivante
select next_day(sysdate) from dual;
NEXT_DAY
———–
09-AUG-2003
EXTRACT
Une fonction datetime EXTRACT extrait et renvoie la valeur d’un champ date spécifié à partir d’une expression de date ou de valeur d’intervalle. Lorsque vous extrayez un TIMEZONE_REGION ou TIMEZONE_ABBR (abréviation), la valeur renvoyée est une chaîne de caractères contenant le nom ou l’abréviation du fuseau horaire approprié
La syntaxe de la fonction EXTRACT est
EXTRACT ( YEAR / MONTH / WEEK / DAY / HOUR / MINUTE / TIMEZONE FROM DATE)
Exemple
Les éléments suivants démontrent l’utilisation de la fonction EXTRACT pour extraire l’année de la date actuelle.
select extract(year from sysdate) from dual;
EXTRACT
——-
2003
.
Laisser un commentaire