📜  Teradata-日期/时间功能

📅  最后修改于: 2020-11-29 08:59:00             🧑  作者: Mango


本章讨论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函数。

年月间隔

  • 年至月

白天间隔

  • 上班时间
  • 每分钟
  • 第二天
  • 小时
  • 几分钟
  • 小时到秒
  • 分钟
  • 分钟到秒
  • 第二

以下示例将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