Я пытаюсь получить «Шаблоны использования», поэтому мне нужно извлечь из моей базы данных все строки за последние 30 дней, но только те, которые были созданы в 7:00 - 14:00, например, значения взяты из «created_at», поэтому его datetime Я думал просто извлечь все и проверить str_contais на 14:00 или что-то в этом роде, но я уверен, что это не лучшая идея

0
Sp1deR 22 Окт 2019 в 13:56

1 ответ

Лучший ответ

Вы должны иметь возможность комбинировать запросы DATE и TIME, чтобы получить то, что вам нужно.

->whereBetween(DB::raw('DATE(created_at)'), [$from_date, $to_date])
->whereBetween(DB::raw('TIME(created_at)'), [$from_time, $to_time])

Пример SQL

SELECT * FROM table WHERE 
    DATE(created_at) BETWEEN '2019-09-22' AND '2019-10-22' AND
    TIME(created_at) BETWEEN '07:00:00' AND '14:00:00'
0
Aaron W. 22 Окт 2019 в 11:12