我正试图让用户在被跟踪的人生日前一周和生日后一周出现生日。但似乎不起作用。MySQL表user_birthdays由以下4行组成: bid、bname、bdate、buser_id。bdate以YYYY DD格式保存在数据库中。
$sql = "SELECT * FROM user_birthdays WHERE bdate BETWEEN DATE_FORMAT(CURDATE(), '%m-%d') - INTERVAL 7 DAY AND DATE_FORMAT(CURDATE(), '%m-%d') + INTERVAL 7 DAY AND buser_id='{$_SESSION['id']}'";
$result = mysqli_query($connection, $sql);
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)) {当我不使用日期条件时,一切都正常。
发布于 2022-07-12 15:24:56
假设bdate的格式是正确的,那么试试这个:
WHERE bdate BETWEEN DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 7 DAY), '%m-%d') AND DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 7 DAY), '%m-%d')
否则,您可以计算php中的min和max日期,并将它们插入between $min_date and $max_date中。
https://stackoverflow.com/questions/72954622
复制相似问题