是否有更清晰/更短/更易读的方式为当前日期和月份组合的查询添加WHERE
语句。
SELECT id, name, dob, (YEAR(NOW()) - YEAR(dob)) AS age
FROM people
WHERE MONTH(dob) = MONTH(NOW()) AND DAY(dob) = DAY(NOW())
例如;
WHERE dob = THISDAY()
答案 0 :(得分:0)
2月29日出生的人通常在第60天庆祝他们的生日,无论日历日期如何(5月1日非闰年)。
虽然不短,但这种方法并没有遗漏2月29日出生的人:
SELECT id, name, dob, (YEAR(NOW()) - YEAR(dob)) AS age
FROM people
WHERE DAYOFYEAR(curdate()) =
DAYOFYEAR(DATE_ADD(dob, INTERVAL (YEAR(NOW()) - YEAR(dob)) YEAR))
闰年是没有简单方法的原因,如DAYOFYEAR(curdate()) = DAYOFYEAR(dob)
。