Mysql запрос с использованием дат между настоящим моментом и прошлой неделей

Поэтому я пытаюсь получить результаты из базы данных за сегодняшнюю дату и 7 дней назад, но то, что я делаю, кажется неправильным, поскольку я продолжаю получать фатальную ошибку

Uncaught исключение «mysqli_sql_exception» с сообщением «У вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, на предмет правильного синтаксиса, который можно использовать рядом с ‘DAYS GROUP BY logins.unique_id ORDER BY’ Трассировка стека: # 0 mysqli-> query (‘SELECT SUM (DIST …’, 1) # 1 {главный} брошенный

  <?php //get info for scores in the league
if ($result = $link->query("SELECT SUM(DISTINCT step_count.steps) as total,  logins.nickname, MAX(step_count.steps) as maxsteps, ROUND(AVG (DISTINCT step_count.steps)) as average, logins.Email as email
FROM step_count
INNER JOIN logins on
step_count.unique_id=logins.unique_id
WHERE logins.unique_id='$unique_id' AND step_count.date BETWEEN CURDATE() AND CURDATE() + INTERVAL 7 DAYS
GROUP BY logins.unique_id
ORDER BY `total` DESC
", MYSQLI_USE_RESULT))

while($row = $result->fetch_assoc()){ ?>

После обновления столбца я все еще получаю ту же фатальную ошибку

0

Решение

Также для получения данных между сегодняшним днем ​​и 7 днями назад вам необходимо использовать DATE_SUB поэтому последняя часть вашего запроса будет:

step_count.date BETWEEN DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND CURDATE()

И ваш GROUP BY должно быть:

GROUP BY logins.nickname, email
0

Другие решения

У вас есть проблема с синтаксисом здесь, вы пропустили столбец раньше BETWEEN

logins.unique_id='$unique_id' BETWEEN CURDATE() AND CURDATE() + INTERVAL 7 DAYS

Правильный синтаксис BETWEEN является

<column_name> BETWEEN <value1> AND <value2>

Итак, должно быть

logins.unique_id='$unique_id' AND <date_column> BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 7 DAY)

И использовать DATE_ADD вместо этого, чтобы добавить определенное количество дней.

2

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector