В этой главе рассматриваются функции даты и времени, доступные в 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. Есть два типа ИНТЕРВАЛЬНЫХ функций.
Год-Месяц Интервал
- ГОД
- ГОД В МЕСЯЦ
- МЕСЯЦ
Дневной интервал
- ДЕНЬ
- ДЕНЬ ЧАСОВ
- ДЕНЬ В МИНУТУ
- ДЕНЬ ВТОРОЙ
- ЧАС
- ЧАС МИНУТ
- ЧАС ВТОРОГО
- МИНУТЫ
- МИНУТА ВТОРОГО
- ВТОРОЙ
пример
Следующий пример добавляет 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 минут к текущей отметке времени.