Teradata 日期/时间函数
本章讨论 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 值执行算术运算。 INTERVAL 函数有两种类型。
年月间隔
YEAR
YEAR TO MONTH
MONTH
白天间隔
DAY
DAY TO HOUR
DAY TO MINUTE
DAY TO SECOND
HOUR
HOUR TO MINUTE
HOUR TO SECOND
MINUTE
MINUTE TO SECOND
SECOND
示例
以下示例将 3 年添加到当前日期。
SELECT CURRENT_DATE, CURRENT_DATE + INTERVAL '03' YEAR;
Date (Date+ 3)
-----------------
16/01/01 19/01/01
以下示例将 3 年零 1 个月添加到当前日期。
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