未显示正确的年龄

时间:2014-12-18 21:26:32

标签: sql

我有这个查询来显示年龄。但是它的显示年龄不超过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岁等等。

任何更正都将受到赞赏

3 个答案:

答案 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年进行比较。