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