Teradata 日期/时间函数

2025年3月17日 | 阅读 3 分钟

日期/时间函数对日期/时间或间隔值进行运算,并提供一个日期/时间值作为结果。

支持的日期/时间函数有:

  • CURRENT_DATE
  • CURRENT_TIME
  • CURRENT_TIMESTAMP
  • EXTRACT

为了避免任何同步问题,这些函数之间的操作保证对 DATE、TIME 或 TIMESTAMP 使用相同的定义,因此以下服务始终有效:

  • CURRENT_DATE = CURRENT_DATE
  • CURRENT_TIME = CURRENT_TIME
  • CURRENT_TIMESTAMP = CURRENT_TIMESTAMP
  • CURRENT_DATE 和 CURRENT_TIMESTAMP 始终标识相同的 DATE
  • CURRENT_TIME 和 CURRENT_TIMESTAMP 始终标识相同的 TIME

这些值反映了请求开始的时间,并且在应用程序的持续时间内不会更改。

日期存储

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

要检查日期如何存储,请使用以下查询。

由于日期存储为整数,因此我们可以对其执行一些算术运算。

Teradata 支持大多数标准日期函数。 下面列出了一些常用的日期函数,例如:

日期函数说明
LAST_DAY它返回给定月份的最后一天。 它可能也包含时间戳值。
NEXT_DAY它返回特定日期之后的星期几的日期。
MONTHS_BETWEEN它返回两个日期(时间戳)值之间的月数。 结果始终是整数值。
ADD_MONTHS它将一个月添加到给定的日期(时间戳)值,并返回结果日期值。
OADD_MONTHS它将一个月添加到给定的日期(时间戳)值,并返回结果日期值。
TO_DATE它将字符串值转换为 DATE 值,并返回结果日期值。
TO_TIMESTAMP它将字符串值转换为 TIMESTAMP 值,并返回结果时间戳值。
TRUNC它返回一个 DATE 值,其时间部分截断为格式字符串指定的单位。
ROUND它返回一个 DATE 值,其时间部分四舍五入到格式字符串指定的单位。
NUMTODSINTERVAL它将数字值转换为天数到秒数的间隔。
NUMTOYMINTERVAL它将数字值转换为年份到月份的间隔。
TO_DSINTERVAL它将字符串值转换为天数到秒数的间隔。
TO_YMINTERVAL它将字符串值转换为年份到月份的间隔。
EXTRACT它从给定的日期值中提取日、月和年份的部分。
INTERVALINTERVAL 函数用于对 DATE 和 TIME 值执行算术运算。

EXTRACT

EXTRACT 函数用于从 DATE 值中提取日、月和年份的部分。 此函数也用于从 TIME/TIMESTAMP 值中提取小时、分钟和秒。

示例

1. 以下示例显示如何从日期和时间戳值中提取年份值。

输出

2020

2. 以下示例显示如何从日期和时间戳值中提取月份值。

输出

3. 以下示例显示如何从日期和时间戳值中提取值。

输出

22

4. 以下示例显示如何从日期和时间戳值中提取小时值。

输出

6

5. 以下示例显示如何从日期和时间戳值中提取分钟值。

输出

46

6. 以下示例显示如何从日期和时间戳值中提取值。

输出

25.150000

INTERVAL

Teradata 提供 INTERVAL 函数以对 DATE 和 TIME 值执行算术运算。 INTERVAL 函数有两种类型,例如:

1. 年-月间隔

  • YEAR
  • YEAR TO MONTH
  • MONTH

2. 日-时间间隔

  • DAY
  • DAY TO HOUR
  • DAY TO MINUTE
  • DAY TO SECOND
  • HOUR
  • HOUR TO MINUTE
  • HOUR TO SECOND
  • MINUTE
  • MINUTE TO SECOND
  • SECOND

示例

1. 以下示例将 4 年添加到当前日期。

输出

05/22/2024

2. 以下示例将 4 年 03 个月添加到当前日期。

输出

08/22/2024

3. 以下示例将 03 天 05 小时 10 分钟添加到当前时间戳。

输出

05-25-2020 10:07:25.150000+00.00