只是好奇是否有人可以就使用 MySQL 查找生日的问题给我一些指导。
我目前设置了一个“日历”,它显示 1 个月 + 该月前 3 天和该月后 3 天。
我遇到了一个当前出现的问题,因为过去 3 天的“年份”不同,因为它将是 2013 年。所以我从 MySQL 中选择的代码是这样的
SELECT * FROM contacts WHERE userId = '23' AND Month(dob) IN('12', '01', '01')
现在我认为我需要进行稍微更好的日期比较。 我的代码是我有 2 个日期 (2012-12-01) - (2013-01-30)
我知道有人问过类似的问题,但我找不到任何“体面”的东西...如果可能的话,您可以帮助我,我将不胜感激。
简而言之,我认为我只是需要一种更好的方式来“查询”我的日期......提前致谢!
最佳答案
尝试如下:
SELECT *
FROM contacts
WHERE userId = '23'
AND dob BETWEEN
(CURRENT_DATE - INTERVAL (DAYOFMONTH(CURRENT_DATE)+3) DAY)
AND ((CURRENT_DATE + INTERVAL 1 MONTH) + INTERVAL 3 DAY);
免责声明:这是我的想法,所以请测试语法。 注意:这是假设您的 [dob] 字段只是日期,而不是日期时间。如果使用 DATETIME/TIMESTAMP,cast to DATE or adjust the upper and lower bounds accordingly 。
关于php - 选择跨越 2 年(2012-2013)的所有生日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13888570/