从MYSQL查询中排除一年

时间:2014-11-10 07:04:10

标签: php mysql

我有一张桌子 - 存放姓名和生日的客户。如果我们没有出生年份,则默认为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的另一个答案中找到了解决他们年龄的方法)。

2 个答案:

答案 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

感谢您的帮助 - 它让我走上了正确的道路。