全部產品
Search
文件中心

AnalyticDB:時間、日期函數和操作符

更新時間:Jul 24, 2024

AnalyticDB for PostgreSQL相容PostgreSQL時間、日期函數和操作符。本文簡單列舉AnalyticDB for PostgreSQL相容的時間、日期函數和操作符及用法樣本。

PostgreSQL時間、日期函數和操作符的詳細使用方法,請參見PostgreSQL官方文檔:時間、日期函數和操作符

時間、日期函數

函數名稱

傳回型別

函數說明

用法樣本

樣本結果

age(,)

interval

用於計算兩個時間戳記之間的時間間隔。

age(timestamp '2001-04-10', timestamp '1957-06-13')

43 years 9 mons 27 days

age()

interval

用於計算目前時間與指定參數之間的時間間隔。

age(timestamp '1957-06-13')

43 years 8 mons 3 day

clock_timestamp()

timestamp with time zone

擷取日期和時間(每次調用的最新時間)。

clock_timestamp()

2024-07-01 20:00:00

current_date

date

擷取當前日期。

current_date

2024-07-01 20:00:00

current_time

time with time zone

擷取目前時間。

current_time

2024-07-01 20:00:00

current_timestamp

timestamp with time zone

擷取當前日期和時間(一個事務的生命週期內)。

current_timestamp

2024-07-01 20:00:00

date_part(,)

double precision

用於從文本中提取指定部分的時間戳記。

date_part('hour', timestamp '2001-02-16 20:38:40')

20

date_partt(,)

double precision

用於從文本中提取指定部分的時間間隔。

date_part('month', interval '2 years 3 months')

3

date_trunc(,)

timestamp

用於將一個字串截斷到指定的精度。

date_trunc('hour', timestamp '2001-02-16 20:38:40')

2001-02-16 20:00:00

date_trunc(,,)

timestamp with time zone

用於在指定的時區截斷到指定的精度。

date_trunc('day', timestamptz '2001-02-16 20:38:40+00', 'Australia/Sydney')

2001-02-16 13:00:00+00

date_trunc(,)

interval

用於將一個時間間隔截斷到指定的時間單位。

date_trunc('hour', interval '2 days 3 hours 40 minutes')

2 days 03:00:00

extract(timestamp)

double precision

用於從時間戳記中提取特定的欄位(如小時)。

extract(hour from timestamp '2001-02-16 20:38:40')

20

extract(interval)

double precision

用於從時間間隔中提取特定的時間單位。

extract(month from interval '2 years 3 months')

3

isfinite()

boolean

檢查一個日期是否是有限的。如果是有限的則返回true,否則返回false。

isfinite(date '2001-02-16')

true

isfinite()

boolean

檢查一個時間戳記是否是有限的。如果是有限的則返回true,否則返回false。

isfinite(timestamp '2001-02-16 21:28:30')

true

isfinite()

boolean

檢查一個時間間隔是否是有限的。如果是有限的則返回true,否則返回false。

isfinite(interval '4 hours')

true

justify_days(

interval

將以天為單位的時間間隔調整為以月為單位的時間間隔。

justify_days(interval '35 days')

1 mon 5 days

justify_hours()

interval

將以小時為單位的時間間隔調整為以天為單位的時間間隔。

justify_hours(interval '27 hours')

1 day 03:00:00

justify_interval()

interval

將時間間隔按照指定單位進行調整。

justify_interval(interval '1 mon -1 hour')

29 days 23:00:00

localtime

time

擷取伺服器的當前的本地日期和時間。

localtime

2024-07-01 08:15:23

localtimestamp

timestamp

擷取伺服器當前的本地日期和時間,包括到秒或毫秒層級的精度。

localtimestamp

2024-07-01 08:15:23

make_date(,,)

date

用於根據指定的年、月、日三個整數參數建立一個日期類型的值。

make_date(2013, 7, 15)

2013-07-15

make_interval(DEFAULT 0,DEFAULT 0,DEFAULT 0,DEFAULT 0,DEFAULT 0,DEFAULT 0,DEFAULT 0.0)

interval

用於根據指定的年、月、周、日、時、分、秒建立一個時間間隔值。

make_interval(days => 10)

10 days

make_time(,,)

time

用於根據指定的小時、分鐘和秒(可含小數表示更細粒度的時間單位)建立一個時間類型的值。

make_time(8, 15, 23.5)

08:15:23.5

make_timestamp(,,,,,)

timestamp

用於根據指定的年、月、日、小時、分鐘和秒(可含小數表示更細粒度的時間單位)建立一個日期時間類型的值。

make_timestamp(2013, 7, 15, 8, 15, 23.5)

2013-07-15 08:15:23.5

make_timestamptz(,,,,,, [])

timestamp with time zone

用於根據指定的年、月、日、小時、分鐘、秒(可含小數表示更細粒度的時間單位)以及可選的時區資訊建立一個帶時區的時間戳記類型的值。

make_timestamptz(2013, 7, 15, 8, 15, 23.5)

2013-07-15 08:15:23.5+01

now()

timestamp with time zone

返回當前事務開始時的時間戳記。

now()

2024-07-01 08:15:23.5+01

statement_timestamp()

timestamp with time zone

返回當前查詢或命令開始執行時的日期和時間。

statement_timestamp()

2024-07-01 08:15:23.5+01

timeofday()

text

返回當前的時間(通常是小時、分鐘、秒)。

timeofday()

2024-07-01 08:15:23.5+01

transaction_timestamp()

timestamp with time zone

用於擷取當前事務開始時的時間戳記。

transaction_timestamp()

2024-07-01 08:15:23.5+01

to_timestamp()

timestamp with time zone

把Unix時間(從 1970-01-01 00:00:00+00 開始的秒)轉換成日期時間格式。

to_timestamp(1284352323)

2010-09-13 04:32:03+00

時間、日期操作符

操作符

用法樣本

樣本結果

+

date '2001-09-28' + integer '7'

date '2001-10-05'

+

date '2001-09-28' + interval '1 hour'

timestamp '2001-09-28 01:00:00'

+

date '2001-09-28' + time '03:00'

timestamp '2001-09-28 03:00:00'

+

interval '1 day' + interval '1 hour'

interval '1 day 01:00:00'

+

timestamp '2001-09-28 01:00' + interval '23 hours'

timestamp '2001-09-29 00:00:00'

+

time '01:00' + interval '3 hours'

time '04:00:00'

-

- interval '23 hours'

interval '-23:00:00'

-

date '2001-10-01' - date '2001-09-28'

integer '3'(days)

-

date '2001-10-01' - integer '7'

date '2001-09-24'

-

date '2001-09-28' - interval '1 hour'

timestamp '2001-09-27 23:00:00'

-

time '05:00' - time '03:00'

interval '02:00:00'

-

time '05:00' - interval '2 hours'

time '03:00:00'

-

timestamp '2001-09-28 23:00' - interval '23 hours'

timestamp '2001-09-28 00:00:00'

-

interval '1 day' - interval '1 hour'

interval '1 day -01:00:00'

-

timestamp '2001-09-29 03:00' - timestamp '2001-09-27 12:00'

interval '1 day 15:00:00'

*

900 * interval '1 second'

interval '00:15:00'

*

21 * interval '1 day'

interval '21 days'

*

double precision '3.5' * interval '1 hour'

interval '03:30:00'

/

interval '1 hour' / double precision '1.5'

interval '00:40:00'