您可以在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