Для работы с записями в базе данных в Laravel предусмотрено множество полезных методов. В данном примере мы рассмотрим методы позволяющие задавать критерий выборки в виде определённых периодов.
Например, если у нас есть некий список записей, и нам потребуется выбрать из этого списка записи только за определённый период, мы можем сделать это используя следующие методы:
Каждый из этих методов работает с определённым форматом значений, и выполняет выборку согласно условию. Для наглядности давайте рассмотрим примеры использования этих методов.
Предположим, у нас есть задача выбрать записи, созданные за определённую дату. Из исходных данных у нас будет таблица users, в которой есть целевая колонка для хранения даты — created_at.
$users = DB::table('users') ->whereDate('created_at', '2024-10-05') ->get();
В результате из таблицы users будут выбраны записи, которые были созданы за эту дату.
В этом примере из таблицы аналогично как предыдущему примеру мы сделаем выборку записей из таблицы users, за определённый месяц.
$users = DB::table('users') ->whereMonth('created_at', '10') ->get();
В качестве значения месяца методу передаётся цифра, в нашем примере 10 – будут выбраны записи за октябрь.
Этот пример так же интересен возможностью выборки всех записей за определённое число месяца. Например, нам требуется выбрать все записи, которые были созданы в 20-х числах каждого месяца.
$users = DB::table('users') ->whereDay('created_at', '20') ->get();
Таким образом, опираясь на ту же колонку created_at в таблице users выбрали все записи за определённое число месяца.
Не редкий случай, когда требуется сделать выборку записей за определённый год. Для этих целей есть аналогичный метод, которым мы можем так же воспользоваться в случае необходимости.
$users = DB::table('users') ->whereYear('created_at', '2024') ->get();
В результате в этом примере мы получаем записи, созданные в таблице users за 2024 год.
Бывают случаи, когда необходимо сделать выборку записей из таблицы за определённое время. Для этих целей мы можем воспользоваться следующим методом, передавая ему в качестве параметра время, по которому следует сделать выборку.
$users = DB::table('users') ->whereTime('created_at', '=', '13:25:14') ->get();
В результате получаем записи из таблицы users которые были созданы в указанное время.
Подобным образом используя упомянутые выше методы, можно с легкостью комбинировать с другими условиями и выбирать нужные вам данные из таблиц.