有東西數錯在這裏。
select DATEDIFF
^^^^
PostgreSQL doesn't have a datediff function.
regress-> \df datediff
List of functions
Schema | Name | Result data type | Argument data types | Type
--------+------+------------------+---------------------+------
(0 rows)
我想你想的-
運算符,extract
功能,justify_interval
和to_char
功能。此外,請寫current_timestamp
而不是now()
,這是標準拼寫。
而且這樣的:
(yy, NOW(), select birthdate ...)
^^^
是一個語法錯誤,因爲你沒有包裝在(parentheses)
子查詢,它應該是:
(yy, NOW(), (select birthdate ...))
但在這種情況下,沒有查詢是必要的,因爲你可以將其扁平化爲外部查詢,這會在子查詢得到修復時給您提供,但沒有其他內容:
select DATEDIFF(yy, NOW(), birthdate)
from match where match_id = '550856d8560a64ed180416d1556f5435f4bb054c68930040';
及日期加減:
regress=> SELECT extract(year FROM justify_interval(current_timestamp - DATE '2008-02-01'));
date_part
-----------
7
(1 row)
給予類似:
SELECT extract(year FROM justify_interval(current_timestamp - birthdate))
from match where match_id = '550856d8560a64ed180416d1556f5435f4bb054c68930040';