Teradata - Fonctions de date / heure
Ce chapitre traite des fonctions de date / heure disponibles dans Teradata.
Stockage de la date
Les dates sont stockées sous forme d'entiers en interne à l'aide de la formule suivante.
((YEAR - 1900) * 10000) + (MONTH * 100) + DAY
Vous pouvez utiliser la requête suivante pour vérifier comment les dates sont stockées.
SELECT CAST(CURRENT_DATE AS INTEGER);
Les dates étant stockées sous forme d'entiers, vous pouvez effectuer certaines opérations arithmétiques sur elles. Teradata fournit des fonctions pour effectuer ces opérations.
EXTRAIT
La fonction EXTRACT extrait des parties du jour, du mois et de l'année à partir d'une valeur DATE. Cette fonction est également utilisée pour extraire les heures, les minutes et les secondes de la valeur TIME / TIMESTAMP.
Exemple
Les exemples suivants montrent comment extraire les valeurs Année, Mois, Date, Heure, Minute et Seconde des valeurs Date et Horodatage.
SELECT EXTRACT(YEAR FROM CURRENT_DATE);
EXTRACT(YEAR FROM Date)
-----------------------
2016
SELECT EXTRACT(MONTH FROM CURRENT_DATE);
EXTRACT(MONTH FROM Date)
------------------------
1
SELECT EXTRACT(DAY FROM CURRENT_DATE);
EXTRACT(DAY FROM Date)
------------------------
1
SELECT EXTRACT(HOUR FROM CURRENT_TIMESTAMP);
EXTRACT(HOUR FROM Current TimeStamp(6))
---------------------------------------
4
SELECT EXTRACT(MINUTE FROM CURRENT_TIMESTAMP);
EXTRACT(MINUTE FROM Current TimeStamp(6))
-----------------------------------------
54
SELECT EXTRACT(SECOND FROM CURRENT_TIMESTAMP);
EXTRACT(SECOND FROM Current TimeStamp(6))
-----------------------------------------
27.140000
INTERVALLE
Teradata fournit la fonction INTERVAL pour effectuer des opérations arithmétiques sur les valeurs DATE et TIME. Il existe deux types de fonctions INTERVAL.
Intervalle année-mois
- YEAR
- ANNÉE AU MOIS
- MONTH
Intervalle jour-heure
- DAY
- JOUR À HEURE
- JOUR À MINUTE
- JOUR À DEUXIÈME
- HOUR
- HEURE EN MINUTE
- HEURE À SECONDE
- MINUTE
- MINUTE À SECONDE
- SECOND
Exemple
L'exemple suivant ajoute 3 ans à la date actuelle.
SELECT CURRENT_DATE, CURRENT_DATE + INTERVAL '03' YEAR;
Date (Date+ 3)
-------- ---------
16/01/01 19/01/01
L'exemple suivant ajoute 3 ans et 01 mois à la date actuelle.
SELECT CURRENT_DATE, CURRENT_DATE + INTERVAL '03-01' YEAR TO MONTH;
Date (Date+ 3-01)
-------- ------------
16/01/01 19/02/01
L'exemple suivant ajoute 01 jour, 05 heures et 10 minutes à l'horodatage actuel.
SELECT CURRENT_TIMESTAMP,CURRENT_TIMESTAMP + INTERVAL '01 05:10' DAY TO MINUTE;
Current TimeStamp(6) (Current TimeStamp(6)+ 1 05:10)
-------------------------------- --------------------------------
2016-01-01 04:57:26.360000+00:00 2016-01-02 10:07:26.360000+00:00