php - 选择跨越 2 年(2012-2013)的所有生日

标签 php mysql comparison date-comparison

只是好奇是否有人可以就使用 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/

相关文章:

javascript - PHP/JS 使用模板创建 PDF 和 doc/docx/otf 文件

php - 错误号 : 150 "Foreign key constraint is incorrectly formed" how can i fix this?

java - 整数比较值的错误输出

php - PDO while 循环重用输出模板

mysql - 如何在触发器中声明变量并将其与mysql一起使用?

Python:比较不同深度的字典对的工具?

python - 比较具有不同数量项目的列表

php - 更新用户记录时创建日志记录

php代码没有将我重定向到页面

mysql - 关于自动修复任何失败的表优化的脚本有什么想法吗?