Teradata - funções de data / hora

Este capítulo discute as funções de data / hora disponíveis no Teradata.

Armazenamento de Data

As datas são armazenadas como inteiros internamente usando a fórmula a seguir.

((YEAR - 1900) * 10000) + (MONTH * 100) + DAY

Você pode usar a seguinte consulta para verificar como as datas são armazenadas.

SELECT CAST(CURRENT_DATE AS INTEGER);

Como as datas são armazenadas como inteiros, você pode realizar algumas operações aritméticas nelas. O Teradata fornece funções para executar essas operações.

EXTRAIR

A função EXTRACT extrai partes do dia, mês e ano de um valor DATE. Esta função também é usada para extrair hora, minuto e segundo do valor TIME / TIMESTAMP.

Exemplo

Os exemplos a seguir mostram como extrair os valores de ano, mês, data, hora, minuto e segundo dos valores de data e carimbo de data / hora.

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

INTERVALO

O Teradata fornece a função INTERVAL para realizar operações aritméticas em valores de DATA e HORA. Existem dois tipos de funções INTERVAL.

Intervalo ano-mês

  • YEAR
  • ANO AO MÊS
  • MONTH

Intervalo dia-hora

  • DAY
  • DIA A HORA
  • DIA A MINUTO
  • DIA A SEGUNDO
  • HOUR
  • HORA A MINUTO
  • HORA AO SEGUNDO
  • MINUTE
  • MINUTO PARA SEGUNDO
  • SECOND

Exemplo

O exemplo a seguir adiciona 3 anos à data atual.

SELECT CURRENT_DATE, CURRENT_DATE + INTERVAL '03' YEAR; 
  Date    (Date+ 3) 
--------  --------- 
16/01/01   19/01/01

O exemplo a seguir adiciona 3 anos e 01 mês à data atual.

SELECT CURRENT_DATE, CURRENT_DATE + INTERVAL '03-01' YEAR TO MONTH; 
 Date     (Date+ 3-01) 
--------  ------------ 
16/01/01    19/02/01

O exemplo a seguir adiciona 01 dia, 05 horas e 10 minutos ao registro de data e hora atual.

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