MYSQL根据年龄选择生日
我有一个简单的MYSQL表,在这里我用数据类型date存储生日。行:MYSQL根据年龄选择生日,mysql,sql,Mysql,Sql,我有一个简单的MYSQL表,在这里我用数据类型date存储生日。行: birthday -------- 1989-09-08 我想选择年龄为25岁的用户。我使用以下查询: SELECT birthday FROM `users` WHERE birthday >= now() - INTERVAL 25 YEAR; 这应该返回上面的一行,但是因为这个生日超过25年,而不到26年,MYSQL不会返回它。当我选择INTERVAL 26 YEAR 是否有更正确的查询可供使用?您可以向后比较
birthday
--------
1989-09-08
我想选择年龄为25岁的用户。我使用以下查询:
SELECT birthday FROM `users` WHERE birthday >= now() - INTERVAL 25 YEAR;
这应该返回上面的一行,但是因为这个生日超过25年,而不到26年,MYSQL不会返回它。当我选择INTERVAL 26 YEAR
是否有更正确的查询可供使用?您可以向后比较。你想要:
WHERE birthday <= now() - INTERVAL 25 YEAR;
其中生日对于您也使用的日期范围,请将最早的日期放在第一位
WHERE birthday BETWEEN
CURRENT_DATE - INTERVAL 26 YEAR + INTERVAL 1 DAY
AND CURRENT_DATE - INTERVAL 18 YEAR
另一种方式,但不推荐用于大数据
WHERE TIMESTAMPDIFF(YEAR, birthday) BETWEEN 18 AND 25
试试生日>=日期(curdate(),间隔25年)如何选择18年到25年的范围?我尝试了这个范围,但它会导致同样的问题,在上面的查询中,您会将“25”替换为“18”。
WHERE TIMESTAMPDIFF(YEAR, birthday) BETWEEN 18 AND 25