sql - SQL 中的四舍五入日期

标签 sql postgresql date

我想根据两个日期计算出一个人的年龄:生日和在数据库中创建的日期。

不过,年龄是以天而不是年来计算的。这是我的查询:

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/

相关文章:

xml - XPath 3.0将日期差异与持续时间文字进行比较

asp.net - 日期字段在 Chrome 浏览器中不显示值

sql - 为什么 SQL Server 的 OBJECT_ID(NVARCHAR) 不带变量?

postgresql - 如何将 psql 脚本变量替换为查询中的字符串,以便无论是否设置变量都不会失败

postgresql - 如何将数据库从 Odoo 9 迁移到 Odoo 11?

php - 从mysql中的当前日期获取过去的所有7个日期

SQL查询问题

sql - 选择从上一行发生更改的记录

python - 将具有太多值的行转换为列

sql - 如何根据创建日期查找两个表中最接近的记录?