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