我有这个查询来显示年龄。但是它的显示年龄不超过55岁。 DOB在表格中设置为日期。
以下是我使用的查询。
SELECT
STAFF.First_Name,
STAFF.Middle_Name,
STAFF.Last_Name,
STAFF.Telephone,
TIMESTAMPDIFF(YEAR, DOB, CURDATE()) AS AGE
FROM STAFF
WHERE DOB >= 55
ORDER BY DOB DESC;
显示年龄为21岁等等。
任何更正都将受到赞赏
答案 0 :(得分:1)
可能应该是
where AGE >= 55
而不是
where DOB >= 55
因为将日期与55比较没有多大意义。
编辑:
因为看起来mysql不能识别查询中的命名生成列(AGE),所以它应该是
WHERE TIMESTAMPDIFF(YEAR, DOB, CURDATE()) >= 55
如果您正在寻找55岁或以上的人。
答案 1 :(得分:1)
我认为你的where子句应该是这样的:
WHERE AGE >= 55
答案 2 :(得分:0)
我能想到的最佳解决方案实际上是使用以下where子句:
WHERE DOB <= (CURDATE() - INTERVAL 55 YEAR)
这可以将DOB与当前年份减去55年进行比较。