我有一张桌子 - 存放姓名和生日的客户。如果我们没有出生年份,则默认为1920,因为我认为这很容易从MYSQL查询中排除。
我可以解决这个年龄:
SELECT *, DATE_FORMAT(NOW(), '%Y') -
DATE_FORMAT(Birthday, '%Y') -
(DATE_FORMAT(NOW(), '00-%m-%d') <
DATE_FORMAT(Birthday, '00-%m-%d')) AS age FROM Client
但不能忽视1920年出生的人。
我已尝试过WHERE YEAR>1920 and WHERE YEAR(Birthday) > 1920
,将关联和引号等放回WHERE age < 90
,但无法使其发挥作用。
(我从StackOverflow btw的另一个答案中找到了解决他们年龄的方法)。
答案 0 :(得分:0)
您可以使用此
其中EXTRACT(生日年份)&gt; 1920
答案 1 :(得分:0)
我通过将EXTRACT放在查询的末尾来实现它:
SELECT *,
DATE_FORMAT(NOW(), '%Y') -
DATE_FORMAT(Birthday, '%Y') -
(DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(Birthday, '00-%m-%d'))
AS age
FROM Client
WHERE (EXTRACT(YEAR FROM Birthday))>1920
感谢您的帮助 - 它让我走上了正确的道路。