📅  最后修改于: 2023-12-03 15:20:36.167000             🧑  作者: Mango
Teradata 提供了众多的日期时间函数,这些函数可以用于日期和时间的转换、日期间隔的计算、日期比较等。本文将对常用的日期时间函数进行介绍。
DATE
函数可以将形如 YYYY-MM-DD
的字符型日期转换为日期型。
SELECT DATE('2022-01-01');
-- 返回:2022-01-01
TIME
函数可以将形如 HH:MI:SS.ssssss
的字符型时间转换为时间型。
SELECT TIME('12:34:56.789000');
-- 返回:12:34:56.789000
TIMESTAMP
函数可以将形如 YYYY-MM-DD HH:MI:SS.ssssss
的字符型日期时间转换为日期时间类型。
SELECT TIMESTAMP('2022-01-01 12:34:56.789000');
-- 返回:2022-01-01 12:34:56.789000
TO_CHAR
函数可以将日期时间型转换为字符型,具体的格式需要使用对应的格式控制符。例如 %Y
表示年份,%m
表示月份,%d
表示日期,%H
表示小时,%M
表示分钟,%S
表示秒,%F
表示毫秒。
SELECT TO_CHAR(TIMESTAMP '2022-01-01 12:34:56.789000', 'YYYY-MM-DD HH24:MI:SS.FF6');
-- 返回:2022-01-01 12:34:56.789000
INTERVAL
函数可以创建一个指定类型和值的日期间隔类型。
SELECT INTERVAL '2' YEAR;
-- 返回:+02-00
SELECT INTERVAL '3' MONTH;
-- 返回:+03-00
SELECT INTERVAL '10' DAY;
-- 返回:+10 00:00:00.000000
SELECT INTERVAL '5' HOUR;
-- 返回:+00:05:00.000000
SELECT INTERVAL '30' MINUTE;
-- 返回:+00:00:30.000000
SELECT INTERVAL '500' MICROSECOND;
-- 返回:+00:00:00.000500
ADD_MONTHS
函数可以在日期上加上指定的月数,返回新的日期。
SELECT ADD_MONTHS(DATE '2022-01-31', 1);
-- 返回:2022-02-28
ADD_YEARS
函数可以在日期上加上指定的年数,返回新的日期。
SELECT ADD_YEARS(DATE '2022-02-28', 1);
-- 返回:2023-02-28
MONTHS_BETWEEN
函数计算两个日期之间的月份差。
SELECT MONTHS_BETWEEN(DATE '2022-03-31', DATE '2022-01-01');
-- 返回:2
CURRENT_DATE
函数返回当前日期。
SELECT CURRENT_DATE;
-- 返回:2022-08-17
CURRENT_TIMESTAMP
函数返回当前日期时间。
SELECT CURRENT_TIMESTAMP;
-- 返回:2022-08-17 12:34:56.789000
EXTRACT
函数可以提取日期时间值的各个部分,例如年份、月份、日等等。
SELECT EXTRACT(YEAR FROM DATE '2022-08-17');
-- 返回:2022
SELECT EXTRACT(MONTH FROM TIMESTAMP '2022-08-17 12:34:56.789000');
-- 返回:8
SELECT EXTRACT(DAY FROM TIMESTAMP '2022-08-17 12:34:56.789000');
-- 返回:17