开发手册 欢迎您!
软件开发者资料库

Teradata - 日期/时间功能

Teradata日期/时间函数 - 从简单和简单的步骤学习Teradata,从基本到高级概念,包括简介,安装,体系结构,关系概念,数据类型,表,数据操作,SELECT语句,逻辑和条件运算符,SET运算符,字符串操作,日期/时间函数,内置函数,聚合函数,CASE和COALESCE,主索引,连接,子查询,表类型,空间概念,二级索引,统计,压缩,解释,哈希算法,连接索引,视图,宏,存储过程,JOIN策略,分区主索引,OLAP功能,数据保护,用户管理,性能调整,FastLoad,MultiLoad,FastExport,BTEQ。

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

日期存储

日期使用以下公式在内部存储为整数.

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

您可以使用以下查询来检查日期的存储方式.

SELECT CAST(CURRENT_DATE AS INTEGER);

由于日期存储为整数,因此您可以对它们执行一些算术运算. Teradata提供执行这些操作的功能.

EXTRACT

EXTRACT函数从DATE值中提取日,月和年的部分内容.此函数还用于从TIME/TIMESTAMP值中提取小时,分钟和秒.

示例

以下示例显示如何提取Year,Month来自日期和时间戳值的日期,小时,分钟和秒值.

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函数.

年 - 月间隔

  • 每年一个月

  • MONTH

日间隔时间

  • DAY

  • DAY TO HOUR

  • DAY TO MINUTE

  • 第二天

  • 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