从MYSQL查询中排除一年


Exclude a year from MYSQL query

我有一个表-客户端,它存储姓名和生日。如果我们没有出生年份,则默认为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

谢谢你的帮助,这让我走上了正确的道路。