您可以在ADB_PG_SQL任务中使用日期函数对指定字符串进行灵活处理。本文为您提供ADB_PG_SQL任务支持的数学函数的命令格式、参数说明及示例,指导您使用字符串函数完成开发。
AnalyticDB for PostgreSQL支持的字符串函数如下。
函数 | 功能 |
减去参数,产生一个使用年和月的“符号”结果,而不仅仅是天。 | |
从当前日期中减去相应日期。 | |
当前日期和时间(语句执行期间的更改)。 | |
当前日期。 | |
当前时间。 | |
当前日期和时间(当前交易的开始)。 | |
获取子字段(相当于extract)。 | |
截断到指定的精度。 | |
截断到指定的精度。 | |
获取子字段。 | |
获取子字段。 | |
测试有限日期 (not +/-infinity)。 | |
测试有限时间戳 (not +/-infinity)。 | |
有限区间测试。 | |
调整间隔,使 30 天的时间段表示为月。 | |
调整间隔,使 24 小时时间段以天数表示。 | |
使用 justify_days 和 justify_hours 调整间隔,并进行额外的符号调整。 | |
当前时间。 | |
当前日期和时间(当前事务的开始)。 | |
从年月日字段创建日期。 | |
从年、月、周、日、小时、分钟和秒字段创建间隔。 | |
从小时、分钟和秒字段创建时间。 | |
从年、月、日、小时、分钟和秒字段创建时间戳。 | |
从年、月、日、小时、分钟和秒字段创建带时区的时间戳。如果未指定时区,则使用当前时区。 | |
当前日期和时间(当前交易的开始)。 | |
当前日期和时间(当前语句的开始)。 | |
当前日期和时间(类似于 clock_timestamp,但作为文本字符串)。 | |
当前日期和时间(当前交易的开始)。 |
age
命令格式
age(timestamp, timestamp)
命令说明:减去参数,产生1个使用年和月的“符号”结果,而不仅仅是天。
参数说明:
timestamp:必填。要计算的日期。
timestamp:必填。日期。
返回值说明:函数根据指定的日期减去参数,返回1个使用年和月的“符号”结果。
示例:
SELECT age(timestamp '2010-02-02', timestamp '2001-01-01'); --返回9 years 1 mon 1 day
age
命令格式
age(timestamp)
命令说明:从当前日期中减去相应日期。
参数说明:
timestamp:必填。要计算的日期。
返回值说明:当前日期中减去相应日期,函数返回一个整数数字。
示例:
SELECT age(timestamp '1996-05-02'); --返回21 years 4 mons 12 days
clock_timestamp
命令格式
clock_timestamp()
命令说明:当前日期和时间(语句执行期间的更改)。
返回值说明:函数返回一个带有时区信息的日期和时间,它是此函数执行时的系统日期和时间。
示例:
SELECT clock_timestamp(); --返回2023-01-03 15:38:44.332799
current_date
命令格式
current_date
命令说明:当前的系统日期。
返回值说明:函数返回当前的系统日期,格式为
YYYY-MM-DD
。示例:
SELECT current_date; --返回2023-01-03
current_time
命令格式
current_time
命令说明:当前系统时间。
返回值说明:数返回带有时区信息的系统时间,格式为
HH:MI:SS.ssssss{+|-}ZZ
。示例:
SELECT current_time; --返回20:37:44.688689+03
current_timestamp
命令格式
current_timestamp
命令说明:当前日期和时间(所属事务开始的时间)。
返回值说明:函数返回当前的日期和时间(所属事务开始的时间)。
示例:
SELECT current_timestamp; --返回2023-01-01 15:55:37.222601+03
date_part
命令格式
date_part(text, timestamp)
命令说明:获取子字段(相当于extract)。
参数说明:
text:必填。字符串,表示要抽取的部分。
timestamp:必填。可以是时间戳、日期、时间或者间隔类型。
返回值说明:函数返回从timestamp返回通过字符串text指定的部分。
示例:
SELECT date_part('century', TIMESTAMP '2023-01-01 12:41:13.662522'); --返回21
date_trunc
命令格式
date_trunc(text, timestamp)
命令说明:截断到指定的精度。
参数说明:
string:必填。 1个表示要截取的字符串。
返回值说明:函数将一个指定的时间截断到指定的部分并返回。
示例:
SELECT date_trunc('year', TIMESTAMP '2023-01-01 12:41:13.662522'); --返回2023-01-01 00:00:00.0
date_trunc
命令格式
date_trunc(text, interval)
命令说明:截断到指定的精度,截断一个间隔类型的值。
参数说明:
string:必填。 1个表示要截取的字符串。
返回值说明:函数将一个指定的间隔值截断到指定的部分并返回。
示例:
SELECT date_trunc('hour', INTERVAL '1 days 20:10:10'); --返回1 day 20:00:00
extract
命令格式
extract(field from timestamp)
命令说明:获取子字段。
参数说明:
field:必填。1个表示要截取的字符串。
timestamp:必填。1个时间戳。
返回值说明:函数将一个指定的时间戳或间隔值截断到指定的部分并返回。
示例:
SELECT extract(CENTURY FROM TIMESTAMP '2023-01-01 12:41:13.662522'); --返回21
extract
命令格式
extract(field from interval)
命令说明:获取子字段。
参数说明:
field:必填。1个表示要截取的字符串。
timestamp:必填。1个间隔值。
返回值说明:函数将一个指定的时间戳或间隔值截断到指定的部分并返回。
示例:
SELECT extract(DAY FROM INTERVAL '2 days 10 minutes'); --返回2
isfinite
命令格式
isfinite(date)
命令说明:测试有限日期 (not +/-infinity)。
参数说明:
string:必填。 1个需要计算位数的字符串。
返回值说明:函数返回一个整数数字,它代表了给定字符串的位数。
示例:
SELECT isfinite(DATE '2023-01-01'); --返回t
isfinite
命令格式
isfinite(timestamp)
命令说明:测试有限时间戳 (not +/-infinity)。
参数说明:
timestamp:必填。 要检测的时间戳值。
返回值说明:函数返回一个布尔值,它指示了检测一个给定的日期、时间戳或间隔值是否是一个有限大的值。
示例:
SELECT isfinite(TIMESTAMP '2023-01-01 12:41:13.662522'); --返回t
isfinite
命令格式
isfinite(interval)
命令说明:测试有限间隔值 (not +/-infinity)。
参数说明:
interval:必填。 要检测的间隔值。
返回值说明:函数返回一个布尔值,它指示了检测一个给定的日期、时间戳或间隔值是否是一个有限大的值。
示例:
isfinite(INTERVAL '2 days 10 minutes'); --返回t
justify_days
命令格式
justify_days(interval)
命令说明:调整间隔,使 30 天的时间段表示为月。
参数说明:
interval:必填。要转换的间隔值。
返回值说明:函数返回一个整数数字,它代表了给定字符串的位数。
示例:
SELECT justify_days(INTERVAL '20 days'); --返回20 days
justify_hours
命令格式
justify_hours(interval)
命令说明:调整间隔,使 24 小时时间段以天数表示。
参数说明:
interval:必填。要转换的间隔值。
返回值说明:函数转换时间间隔的表示方法,将超过 24 小时的小时数转为天数。 如果给定的间隔值小于 24 天,则不做任何转换。
示例:
SELECT justify_hours(INTERVAL '20 hours'); --返回20:00:00
justify_interval
命令格式
justify_interval
命令说明:使用justify_days和justify_hours调整间隔,并进行额外的符号调整。
参数说明:
string:必填。要转换的间隔值。
返回值说明:函数转换时间间隔的表示方法,将超过 24 小时的小时数转为天数,并且将超过 30 天的天数转为月数。
示例:
SELECT justify_interval(INTERVAL '6000 hours'); --返回8 mons 10 days
localtime
命令格式
localtime
命令说明:当前时间。
返回值说明:函数返回当前的系统时间,格式为 HH:MM:SS.ssssss。
示例:
SELECT localtime; --返回64
localtimestamp
命令格式
localtimestamp
命令说明:当前日期和时间(当前事务的开始)。
返回值说明:函数返回该函数所属的事务开始时的系统日期和时间。
示例:
SELECT localtimestamp; --返回16:43:04.582222
make_date
命令格式
make_date(year, month, day)
命令说明:从年月日字段创建日期。
参数说明:
year:年份的整数。
month:月份的整数。
day:天的整数。
返回值说明:函数返回一个日期值,它由给定的年、月、日字段创建而来。如果年份为负数,则表示日期处于公元前。
示例:
SELECT make_date(2023, 01, 01); --返回2023-01-01
make_interval
命令格式
make_interval
命令说明:从年、月、周、日、小时、分钟和秒字段创建间隔。
返回值说明:函数返回一个间隔值,它由给定的年、月、日、时、分、秒字段创建而来。
示例:
SELECT make_interval(1, 2, 3, 4, 5, 6, 1.123); --返回1 year 2 mons 25 days 05:06:01.123
make_time
命令格式
make_time(hour, minute, second)
命令说明:从小时、分钟和秒字段创建时间。
参数说明:
hour:必填。 小时的整数。
string:必填。 分钟的整数。
second:必填。秒的双精度浮点数。
返回值说明:函数返回一个时间值,它由给定的时、分、秒字段创建而来。
示例:
SELECT make_time(20, 55, 25.517606); --返回20:55:25.517606
make_timestamp
命令格式
make_timestamp(year, month, day, hour, minute, second)
命令说明:从年、月、日、小时、分钟和秒字段创建时间戳。
参数说明:
year:必填。年份的整数。
month:必填。月份的整数。
hour:必填。 小时的整数。
string:必填。 分钟的整数。
second:必填。秒的双精度浮点数。
返回值说明:函数返回一个时间戳值,它由给定的年、月、日、时、分、秒字段创建而来。如果年份为负数,则表示日期处于公元前。
示例:
SELECT make_timestamp(2023, 01, 01, 20, 55, 25.517606); --返回2023-01-01 20:55:25.517606
make_timestamptz
命令格式
make_timestamptz(year int, month int, day int, hour int, min int, sec double precision, [ timezone text ])
命令说明:从年、月、日、小时、分钟和秒字段创建带时区的时间戳。如果未指定时区,则使用当前时区。
参数说明:
year:必填。年份的整数。
month:必填。月份的整数。
hour:必填。 小时的整数。
string:必填。 分钟的整数。
second:必填。秒的双精度浮点数。
timezone:可选。时区的字符串。默认值为当前的时区。
返回值说明:函数返回一个带有时区信息的时间戳值,它由给定的年、月、日、时、分、秒、时区字段创建而来。如果年份为负数,则表示日期处于公元前。
示例:
SELECT make_timestamptz(2023, 01, 01, 20, 55, 25.517606); --返回2023-01-01 20:55:25.517606+08
now
命令格式
now()
命令说明:当前日期和时间(所属的事务开始时的系统日期和时间)。
返回值说明:函数返回一个带有时区信息的日期和时间,它是该函数所属的事务开始时的系统日期和时间。
示例:
SELECT now(); --返回2023-01-03 16:05:27.182015
statement_timestamp
命令格式
statement_timestamp()
命令说明:当前日期和时间(当前语句的开始)。
返回值说明:函数返回一个带有时区信息的日期和时间,它是该函数所在的语句开始执行时的系统日期和时间。
示例:
SELECT statement_timestamp(); --返回2023-01-03 16:08:27.273888
timeofday
命令格式
timeofday()
命令说明:当前日期和时间(类似于 clock_timestamp,但作为文本字符串)。
返回值说明:函数返回一个字符串,它表示此函数执行时的系统日期和时间,并带有时区信息。
示例:
SELECT timeofday(); --返回Tue Jan 03 16:08:09.228504 2023 CST
transaction_timestamp
命令格式
transaction_timestamp()
命令说明:当前日期和时间(所属的事务开始时的系统日期和时间)。
返回值说明:函数返回一个带有时区信息的日期和时间,它是该函数所属的事务开始时的系统日期和时间。
示例:
SELECT transaction_timestamp(); --返回2023-01-03 16:08:06.276571