📅  最后修改于: 2021-01-11 11:21:49             🧑  作者: Mango
日期/时间功能可对日期/时间或间隔值进行操作,并因此提供日期/时间值。
支持的日期/时间功能是:
为避免任何同步问题,请确保这些函数之间的操作使用相同的DATE,TIME或TIMESTAMP定义,因此以下服务始终有效:
这些值反映了请求开始的时间,并且在应用程序的持续时间内不会更改。
使用以下公式将日期内部存储为整数。
((YEAR - 1900) * 10000) + (MONTH * 100) + DAY
使用以下查询检查日期的存储方式。
SELECT CAST(CURRENT_DATE AS INTEGER);
由于日期存储为整数,因此我们可以对其进行一些算术运算。
Teradata支持大多数标准日期功能。下面列出了一些常用的日期函数,例如:
Date Function | Explanation |
---|---|
LAST_DAY | It returns the last day of the given month. It may contain the timestamp values as well. |
NEXT_DAY | It returns the date of the weekday that follows a particular date. |
MONTHS_BETWEEN | It returns the number of months between two date (timestamp) values. The result is always an integer value. |
ADD_MONTHS | It adds a month to the given date (timestamp) value and return resulting date value. |
OADD_MONTHS | It adds a month to the given date (timestamp) value and return resulting date value. |
TO_DATE | It converts a string value to a DATE value and returns the resulting date value. |
TO_TIMESTAMP | It converts a string value to a TIMESTAMP value and returns resulting timestamp value. |
TRUNC | It returns a DATE value with the time portion truncated to the unit specified by a format string. |
ROUND | It returns a DATE value with the time portion rounded to the unit specified by a format string. |
NUMTODSINTERVAL | It converts a numeric value to interval days to seconds. |
NUMTOYMINTERVAL | It converts a numeric value to interval years to the month. |
TO_DSINTERVAL | It converts a string value to interval days to second. |
TO_YMINTERVAL | It converts a string value to interval year to a month. |
EXTRACT | It extracts portions of the day, month, and year from a given date value. |
INTERVAL | INTERVAL function is used to perform arithmetic operations on DATE and TIME values. |
EXTRACT函数用于从DATE值中提取日,月和年的一部分。此函数还用于从TIME / TIMESTAMP值中提取小时,分钟和秒。
例子
1.以下示例说明如何从日期和时间戳值中提取年份值。
SELECT EXTRACT(YEAR FROM CURRENT_DATE);
EXTRACT(YEAR FROM Date)
输出量
2020
2.以下示例显示如何从日期和时间戳值中提取月份值。
SELECT EXTRACT(MONTH FROM CURRENT_DATE);
EXTRACT(MONTH FROM Date)
输出量
5
3.下面的示例说明如何从日期和时间戳值中提取日值。
SELECT EXTRACT(DAY FROM CURRENT_DATE);
EXTRACT(DAY FROM Date)
输出量
22
4.以下示例显示如何从日期和时间戳值中提取小时值。
SELECT EXTRACT(HOUR FROM CURRENT_TIMESTAMP);
EXTRACT(HOUR FROM Current TimeStamp(6))
输出量
6
5.下面的示例说明如何从日期和时间戳值中提取分钟值。
SELECT EXTRACT(MINUTE FROM CURRENT_TIMESTAMP);
EXTRACT(MINUTE FROM Current TimeStamp(6))
输出量
46
6.下面的示例演示如何从Date和Timestamp值中提取Second值。
SELECT EXTRACT(SECOND FROM CURRENT_TIMESTAMP);
EXTRACT(SECOND FROM Current TimeStamp(6))
输出量
25.150000
Teradata提供INTERVAL函数以对DATE和TIME值执行算术运算。有两种类型的INTERVAL函数,例如:
1.年月间隔
2.白天间隔
例子
1.以下示例将当前日期增加了4年。
SELECT CURRENT_DATE, CURRENT_DATE + INTERVAL '04' YEAR;
输出量
05/22/2024
2.以下示例将4年零03个月添加到当前日期。
SELECT CURRENT_DATE, CURRENT_DATE + INTERVAL '04-03' YEAR TO MONTH;
输出量
08/22/2024
3.下面的示例向当前时间戳添加03天,05小时和10分钟。
SELECT CURRENT_TIMESTAMP,CURRENT_TIMESTAMP + INTERVAL '03 05:10' DAY TO MINUTE;
输出量
05-25-2020 10:07:25.150000+00.00