Teradata - Datums- / Zeitfunktionen
In diesem Kapitel werden die in Teradata verfügbaren Datums- / Uhrzeitfunktionen erläutert.
Datumsspeicherung
Daten werden intern als Ganzzahl nach der folgenden Formel gespeichert.
((YEAR - 1900) * 10000) + (MONTH * 100) + DAY
Mit der folgenden Abfrage können Sie überprüfen, wie die Daten gespeichert werden.
SELECT CAST(CURRENT_DATE AS INTEGER);
Da die Daten als Ganzzahl gespeichert sind, können Sie einige arithmetische Operationen an ihnen ausführen. Teradata bietet Funktionen zum Ausführen dieser Vorgänge.
EXTRAKT
Die EXTRACT-Funktion extrahiert Teile von Tag, Monat und Jahr aus einem DATE-Wert. Diese Funktion wird auch verwendet, um Stunde, Minute und Sekunde aus dem Wert TIME / TIMESTAMP zu extrahieren.
Beispiel
Die folgenden Beispiele zeigen, wie Sie Jahr-, Monats-, Datums-, Stunden-, Minuten- und Sekundenwerte aus Datums- und Zeitstempelwerten extrahieren.
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
INTERVALL
Teradata bietet die INTERVAL-Funktion zum Ausführen von Rechenoperationen für DATE- und TIME-Werte. Es gibt zwei Arten von INTERVALL-Funktionen.
Jahr-Monat-Intervall
- YEAR
- JAHR BIS MONAT
- MONTH
Tageszeitintervall
- DAY
- Tag bis Stunde
- Tag bis Minute
- TAG ZUM ZWEITEN
- HOUR
- STUNDE ZUR MINUTE
- STUNDE ZUM ZWEITEN
- MINUTE
- Minute bis Sekunde
- SECOND
Beispiel
Im folgenden Beispiel werden dem aktuellen Datum 3 Jahre hinzugefügt.
SELECT CURRENT_DATE, CURRENT_DATE + INTERVAL '03' YEAR;
Date (Date+ 3)
-------- ---------
16/01/01 19/01/01
Im folgenden Beispiel werden dem aktuellen Datum 3 Jahre und 01 Monate hinzugefügt.
SELECT CURRENT_DATE, CURRENT_DATE + INTERVAL '03-01' YEAR TO MONTH;
Date (Date+ 3-01)
-------- ------------
16/01/01 19/02/01
Im folgenden Beispiel werden dem aktuellen Zeitstempel 01 Tage, 05 Stunden und 10 Minuten hinzugefügt.
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