mysql - 是否有将日期转换为年龄的 SQL 查询
问题描述
假设我有这个查询:
SELECT CURRENT_DATE-DOB as age FROM customerDetails
WHERE customerid = (SELECT max(customerid) FROM
customerDetails)
在 SQLTE3 中,将客户的出生日期转换为格式,例如 2002-08-11(作为日期字段)到他们当前的年龄,例如 17,我可以为 MYSQL 查询重复相同的逻辑吗?
语法是否不同...因为相同的查询在 MYSQL Workbench 而不是 SQLite3 的 DB Broswswer 中运行时会产生这种情况
20198120
解决方案
在 MySQL 中减去日期并不符合您的预期。它实际上将日期转换为整数,然后减去它们。所以通常 date2020-01-22
变成 integer 20200122
。这不是你想要的。
计算年龄的一种方法是使用日期函数TIMESTAMPDIFF()
,如下所示:
timestampdiff(year, dob, curdate())
推荐阅读
- javascript - 按下按钮时功能无法正常工作
- python - pandas:如何导入以空格分隔的数据文件“horse-colic.data”?
- ios - 为什么调用 XMLParser(contentsOfURL: rssURL) 会给出错误:“传递给不带参数的调用的参数”?
- java - 通过 WIFI 从 SQL 服务器检索数据
- .net - 导出 .net Web 应用程序(网站)的正确方法以及如何通过加载可能不正确导出的站点来修复此错误
- vuejs2 - Vuex - '不要在突变处理程序之外改变 vuex 存储状态'
- azure - 如何将构建或发布属性传递给 Azure 函数
- java - 创建滥用数量的线程
- java - OpenJFX 斩波对话框窗口
- python - relplot seaborn 中的图例大小/标记