我想根据两个日期计算出一个人的年龄:生日和在数据库中创建的日期。
不过,年龄是以天而不是年来计算的。这是我的查询:
SELECT date_of_birth as birthday, created_at, (created_at - date_of_birth) as Age
FROM public.users
WHERE date_of_birth IS NOT NULL
date_of_birth 字段是不带时间戳的日期,但created_at 字段是带时间戳的日期(例如 2017-05-06 01:27:40)。
我的输出如下所示:
0 years 0 mons 9645 days 1 hours 27 mins 40.86485 secs
知道如何按最近的年份舍入/计算年龄吗?
使用 PostgreSQL。
最佳答案
如果您使用的是 MS SQLServer,则可以
CONVERT(DATE, created_at)
然后计算月份差异,例如
DATEDIFF(month, created_at, GETDATE())/12
表示您可以使用月份提醒来添加或减去一年。
关于sql - SQL 中的四舍五入日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43837235/