我试图根据两个日期计算一个人的年龄。它只对数据库中注册的 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 函数
+----------------+----------+------------------------------------------+-----------------------------+------------------------+
| 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'))
| 日期部分 | | :-------- | | 59 |
dbfiddle在这里
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句