gpt4 book ai didi

mysql - 使用 date_add 将列作为间隔值并比较 mysql 中的日期

转载 作者:行者123 更新时间:2023-11-29 15:25:56 24 4
gpt4 key购买 nike

我有这个员工表:

Name        birth_date  retirement_age
Andy 1964-03-13 56
Bertha 1964-11-16 55
Chris 1964-03-08 58
Damon 1964-04-11 56

我试图通过使用 date_add() 将退休年龄添加到出生日期来找出本月(2019 年 11 月)退休的员工。退休日期总是在月底。

这就是我一直在做的事情:

SELECT Name,
@ra:=CAST(retirement_age AS UNSIGNED),
LAST_DAY(DATE_ADD(`birth_date`, INTERVAL @ra year)) as `retirement_date`,
FROM `employees`
HAVING
`retirement_date`='2019-11-30'

问题是查询产生了 0 个结果,而它本应返回 1 个结果 (Bertha)。我不明白这有什么问题。

有人可以帮助我或者推荐我正确的方法吗?提前致谢。

最佳答案

问题是变量@ra,不能保证它会在列retirement_dateCAST(retirement_age AS UNSIGNED)<之前计算 直接。
因此,放弃它并使用retirement_age:

SELECT Name,
LAST_DAY(DATE_ADD(`birth_date`, INTERVAL retirement_age year)) AS `retirement_date`
FROM `employees`
HAVING `retirement_date` = '2019-11-30'

请参阅demo .

关于mysql - 使用 date_add 将列作为间隔值并比较 mysql 中的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59093179/

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