PostgreSQL DATEDIFF 函式
Joy Idialu
2023年1月30日
2022年5月14日
與 SQL Server 不同,PostgreSQL 沒有內建的 DATEDIFF
函式來計算日期之間的差異。但是,可以使用包含 PostgreSQL 提供的其他函式的表示式來獲得日期差異。
本教程討論了計算 PostgreSQL 中日期之間天數差異的方法。
在 PostgreSQL 中使用 EXTRACT
函式來獲取日期差值
語法:
EXTRACT(field, source)
field
可以是年、月、日等。source
型別可以是時間戳、時間或間隔。
如果表的列是日期型別,則可以將其型別轉換為時間戳。
可以使用 EXTRACT
函式計算天數差異,如下例所示。
SELECT EXTRACT(DAY FROM '2022-01-15 11:40:00'::timestamp - '2021-11-03 13:10:00'::timestamp)
輸出:
extract
---------
72
請注意,PostgreSQL 將返回兩個日期之間的完整天數,並考慮小時分鐘的差異。如果小時、分鐘和秒沒有差異,則返回不同的結果,如下例所示。
SELECT EXTRACT(DAY FROM '2022-01-15 00:00:00'::timestamp - '2021-11-03 00:00:00'::timestamp)
輸出:
extract
---------
73
上面示例中使用的日期與將日期型別欄位轉換為時間戳時的日期相同。
使用 DATE_PART
函式獲取 PostgreSQL 中的日期差異
語法:
DATE_PART('field', source)
field
可以是年、月、日等。它必須是字串型別。
也可以使用 DATE_PART
函式計算天數差異,如下面的命令。
SELECT DATE_PART('day', '2022-01-15 11:40:00'::timestamp - '2021-11-03 13:10:00'::timestamp);
輸出:
date_part
-----------
72