我正在尝试根据两个日期计算一个人的年龄。它只适用于数据库中注册的 50% 的人,其余的只需要第一个人的年龄。
知道问题出在哪里吗?
CREATE OR REPLACE FUNCTION getAge ()
RETURNS INT
LANGUAGE SQL
AS
$$
SELECT CAST (
(EXTRACT (YEAR FROM CURRENT_DATE))
- (EXTRACT (YEAR FROM birth_date)) AS INTEGER)
FROM person;
$$;
最佳答案
在 Postgres 上你可以使用 age function
+----------------+----------+------------------------------------------+-----------------------------+------------------------+
| age(timestamp) | interval | Subtract from current_date (at midnight) | age(timestamp '1957-06-13') | 43 years 8 mons 3 days |
+----------------+----------+------------------------------------------+-----------------------------+------------------------+
select extract(year from age(timestamp '1957-06-13'))
| date_part | | :-------- | | 59 |
dbfiddle here
关于sql - SQL中的getAge取决于两个日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43431591/