Teradata - Funkcje daty / czasu
W tym rozdziale omówiono funkcje daty / czasu dostępne w programie Teradata.
Przechowywanie daty
Daty są wewnętrznie przechowywane jako liczby całkowite przy użyciu następującego wzoru.
((YEAR - 1900) * 10000) + (MONTH * 100) + DAY
Możesz użyć następującego zapytania, aby sprawdzić, jak przechowywane są daty.
SELECT CAST(CURRENT_DATE AS INTEGER);
Ponieważ daty są przechowywane jako liczby całkowite, można na nich wykonać pewne operacje arytmetyczne. Teradata udostępnia funkcje do wykonywania tych operacji.
WYCIĄG
Funkcja EXTRACT wyodrębnia części dnia, miesiąca i roku z wartości DATA. Ta funkcja jest również używana do wyodrębnienia godziny, minuty i sekundy z wartości TIME / TIMESTAMP.
Przykład
Poniższe przykłady pokazują, jak wyodrębnić wartości roku, miesiąca, daty, godziny, minuty i sekundy z wartości daty i znacznika czasu.
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
INTERWAŁ
Teradata zapewnia funkcję INTERVAL do wykonywania operacji arytmetycznych na wartościach DATA i CZAS. Istnieją dwa typy funkcji INTERVAL.
Odstęp rok-miesiąc
- YEAR
- ROK DO MIESIĄCA
- MONTH
Przedział dzienny
- DAY
- DZIEŃ DO GODZIN
- DZIEŃ DO MINUT
- DZIEŃ DO DRUGI
- HOUR
- GODZINA DO MINUT
- GODZINA DO SEKUND
- MINUTE
- MINUTA DO SEKUNDY
- SECOND
Przykład
Poniższy przykład dodaje 3 lata do bieżącej daty.
SELECT CURRENT_DATE, CURRENT_DATE + INTERVAL '03' YEAR;
Date (Date+ 3)
-------- ---------
16/01/01 19/01/01
Poniższy przykład dodaje 3 lata i 01 miesiąca do bieżącej daty.
SELECT CURRENT_DATE, CURRENT_DATE + INTERVAL '03-01' YEAR TO MONTH;
Date (Date+ 3-01)
-------- ------------
16/01/01 19/02/01
Poniższy przykład dodaje 01 dzień, 05 godzin i 10 minut do bieżącego znacznika czasu.
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