为此找到了一些堆栈上的解决方案,但是人们似乎都在以不同的方式提出这些问题似乎与我所做的不相符,所以他们的答案并没有真正帮助。基本上我有以下。
$query = sprintf("SELECT * FROM user WHERE WEEK( userDOB ) < WEEK( DATE_ADD(DATE(now()), INTERVAL 2 WEEK) ) AND WEEK( userDOB ) >= NOW()");
我试图在今天和今天的2周之间找到数据库中的所有生日。目前我以sql格式存储生日yyy-mm-dd
我也有同一查询的这个版本
$query = sprintf("SELECT * FROM user WHERE userDOB BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL +14 DAY)");
我在这里找到了...... https://www.daniweb.com/web-development/php/threads/175275/birthday-reminder
答案 0 :(得分:0)
将它们存储为时间戳(自1970年以来的秒数等),只搜索从现在到当前时间戳+ 3600 * 24(一天)* 14(一周)之间的所有数据
http://php.net/manual/de/function.time.php
time()
为您提供当前时间戳。
答案 1 :(得分:0)
好的,我刚用sql
中的WEEK函数解决了它这是任何寻找
的人的解决方案$query = sprintf("SELECT * FROM user WHERE WEEK( userDOB ) BETWEEN WEEK( CURDATE() ) AND WEEK( DATE_ADD(CURDATE(), INTERVAL +14 DAY) )");