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