我有一个表-客户端,它存储姓名和生日。如果我们没有出生年份,则默认为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上的另一个答案中找到了计算他们年龄的方法)。
您可以使用此
where EXTRACT(从生日算起的年份)>1920
我把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
谢谢你的帮助,这让我走上了正确的道路。