1

好的,我有以下用户表:

id |  name  |  birthday 

1  |  nam1  |  1980-06-29  
2  |  nam2  |  1997-07-08  
3  |  nam3  |  1997-07-20  

假设今天是2012-06-29

我如何才能获得将在未来 15 天内为您庆祝生日的用户?我试过这个:

select * from users where birthday between '%-06-29' and '%-07-14';

但看起来不是一个有效的查询。

4

2 回答 2

3

我认为最安全的方法是将他们 15 天后的年龄与他们今天的年龄进行比较:

SELECT *
FROM   Users
WHERE  TIMESTAMPDIFF(YEAR, birthday, CURRENT_DATE + INTERVAL 15 DAY)
     > TIMESTAMPDIFF(YEAR, birthday, CURRENT_DATE)

sqlfiddle上查看。

于 2012-06-29T16:48:25.527 回答
0

您应该尝试对“生日”的子字符串进行操作,这样您就可以将年份“删掉”

于 2012-06-29T16:34:18.673 回答