SQL – извлечение дат в диапазоне, охватывающем несколько летPhp

Кемеровские программисты php общаются здесь
Anonymous
SQL – извлечение дат в диапазоне, охватывающем несколько лет

Сообщение Anonymous »

В базе данных MySQL (версия 5.7.44) у меня есть несколько записей (>30 000), из которых я хочу выполнить поиск в заданном диапазоне дат.
Целевым столбцом является поле даты с именем ' data» в формате «Г-мм-дд» в таблице «Посещения».
Мое приложение отправляет функции PHP 2 СТРОКИ в одном и том же формате (т. е. 2023-05-01 и 2024-05-01).
Это вырезанный код моей функции PHP:

Код: Выделить всё

$sDate = $_GET['start'];    //2023-05-01
$eDate = $_GET['end'];      //2024-05-01

$start = date('Y-m-d', strtotime($sDate)); //check OK with echo
$end = date('Y-m-d', strtotime($eDate));  //check OK with echo

$query = "SELECT data FROM Visits WHERE
data BETWEEN '".$start."' AND '".$end."' GROUP BY MONTH(data) ORDER BY data ASC";
Запрос выполняется почти хорошо, но я получаю строки только за первый год (2023 г.) и ничего за месяцы 2024 г.
Я подозреваю, что предложение BETWEEN является источник проблемы.
Что я делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/790 ... iple-years

Вернуться в «Php»