Teradata - Funciones de fecha / hora
Este capítulo analiza las funciones de fecha / hora disponibles en Teradata.
Almacenamiento de fecha
Las fechas se almacenan como enteros internamente usando la siguiente fórmula.
((YEAR - 1900) * 10000) + (MONTH * 100) + DAY
Puede utilizar la siguiente consulta para comprobar cómo se almacenan las fechas.
SELECT CAST(CURRENT_DATE AS INTEGER);
Dado que las fechas se almacenan como números enteros, puede realizar algunas operaciones aritméticas en ellas. Teradata proporciona funciones para realizar estas operaciones.
EXTRAER
La función EXTRACT extrae porciones de día, mes y año de un valor de FECHA. Esta función también se utiliza para extraer horas, minutos y segundos del valor de TIME / TIMESTAMP.
Ejemplo
Los siguientes ejemplos muestran cómo extraer los valores de Año, Mes, Fecha, Hora, Minuto y segundo de los valores de Fecha y Marca de tiempo.
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
Teradata proporciona la función INTERVALO para realizar operaciones aritméticas en valores de FECHA y HORA. Hay dos tipos de funciones de INTERVALO.
Intervalo año-mes
- YEAR
- AÑO A MES
- MONTH
Intervalo diurno
- DAY
- DÍA A HORA
- DÍA A MINUTO
- DÍA A SEGUNDO
- HOUR
- HORA A MINUTO
- HORA AL SEGUNDO
- MINUTE
- MINUTO A SEGUNDO
- SECOND
Ejemplo
El siguiente ejemplo agrega 3 años a la fecha actual.
SELECT CURRENT_DATE, CURRENT_DATE + INTERVAL '03' YEAR;
Date (Date+ 3)
-------- ---------
16/01/01 19/01/01
El siguiente ejemplo agrega 3 años y 01 mes a la fecha actual.
SELECT CURRENT_DATE, CURRENT_DATE + INTERVAL '03-01' YEAR TO MONTH;
Date (Date+ 3-01)
-------- ------------
16/01/01 19/02/01
El siguiente ejemplo agrega 01 día, 05 horas y 10 minutos a la marca de tiempo actual.
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