Teradata - 日期/时间函数



本章讨论 Teradata 中可用的日期/时间函数。

日期存储

日期在内部以整数形式存储,使用以下公式。

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

您可以使用以下查询来检查日期是如何存储的。

SELECT CAST(CURRENT_DATE AS INTEGER);

由于日期以整数形式存储,因此您可以在其上执行一些算术运算。Teradata 提供了执行这些运算的函数。

EXTRACT

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

INTERVAL

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 年和 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
广告