gpt4 book ai didi

MySQL 日期问题 - 如何计算?

转载 作者:可可西里 更新时间:2023-11-01 07:57:09 25 4
gpt4 key购买 nike

我有一个带有 date_of_birth 字段的 MySQL 数据库。此字段中存储的数据格式为:MM-DD-YYYY。我需要计算该字段的年龄,因此我必须比较并计算 CurDate() 的差异。

为此,我编写了以下内容:

select FLOOR((DATE_FORMAT(curdate(), '%m-%d-%Y') - date_of_birth)/10000) 
from patients

所以我希望它比较 MM-DD-YYYY 的 CurDate() 减去 MM-DD-YYYY 的 DOB。但是,对于我的一个测试用例,它继续返回 -1。我在 MSSQL 上运行良好,但似乎 MySQL 有点挑剔/不太用户友好。

我是不是漏掉了什么?怎么回事,求助!

谢谢

最佳答案

SELECT DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(date_of_birth, '%Y') - 
(DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(date_of_birth, '00-%m-%d'))
AS age
FROM patients

http://ma.tt/2003/12/calculate-age-in-mysql/

ps:如果你的日期是另一种格式(但我建议你保持它的“原生”格式 YYYY-MM-DD)然后

SELECT 
DATE_FORMAT(NOW(), '%Y') -
DATE_FORMAT(STR_TO_DATE(date_of_birth, '%m-%d-%Y'), '%Y')
- (DATE_FORMAT(NOW(), '00-%m-%d') <
DATE_FORMAT(STR_TO_DATE(date_of_birth, '%m-%d-%Y'), '00-%m-%d'))
AS age
FROM patients

关于MySQL 日期问题 - 如何计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9217611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com