Терадата - функции даты / времени

В этой главе обсуждаются функции даты и времени, доступные в Teradata.

Дата Хранение

Даты хранятся внутри как целые числа с использованием следующей формулы.

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

Вы можете использовать следующий запрос, чтобы проверить, как хранятся даты.

SELECT CAST(CURRENT_DATE AS INTEGER);

Поскольку даты хранятся как целые числа, вы можете выполнять с ними некоторые арифметические операции. Teradata предоставляет функции для выполнения этих операций.

ВЫДЕРЖКА

Функция EXTRACT извлекает части дня, месяца и года из значения DATE. Эта функция также используется для извлечения часа, минуты и секунды из значения TIME / TIMESTAMP.

пример

В следующих примерах показано, как извлечь значения года, месяца, даты, часа, минуты и секунды из значений даты и отметки времени.

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

ИНТЕРВАЛ

Teradata предоставляет функцию INTERVAL для выполнения арифметических операций со значениями DATE и TIME. Есть два типа функций ИНТЕРВАЛ.

Год-месяц интервал

  • YEAR
  • ГОД В МЕСЯЦ
  • MONTH

Дневной интервал

  • DAY
  • ДЕНЬ ЧАС
  • ДЕНЬ ДО МИНУТЫ
  • ДЕНЬ НА ВТОРОЙ
  • HOUR
  • ЧАС ДО МИНУТЫ
  • ЧАС ДО ВТОРОЙ
  • MINUTE
  • МИНУТА ДО ВТОРОЙ
  • SECOND

пример

В следующем примере к текущей дате добавляются 3 года.

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

В следующем примере к текущей дате добавляются 3 года и 01 месяц.

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

В следующем примере к текущей метке времени добавляется 01 день, 05 часов и 10 минут.

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