Терадата - функции даты / времени
В этой главе обсуждаются функции даты и времени, доступные в 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