【Laravel】Eloquentで2つの日付の期間(from, to)でクエリを実行する方法

Laravelで日付の期間を検索するときにキレイにコードを書く方法です。

もちろん単純にこれでも可能です。でも長くて面倒くさいですよね。

User::where('created_at', '>', '2024-01-01 00:00:00')
    ->where('created_at', '<', '2024-12-31 00:00:00')
    ->get();

そんなときはこれ。whereBetweenを使います。

User::whereBetween('created_at', [$from, $to])->get();

MySqlをデータベースに使っている場合でもこのメソッドは使えます。

第2引数に配列でfrom, toの日付をセットしたものを渡してあげればOK.簡単ですね

 

Laravelのスキルチェック

このほか、Laravelの細かいけど実践で役立つプログラミングのクイズを作ってみました!

\知識が身に付く、スキルチェックができる!/

生成されるSQLはそのまんまこれです。

select * from `users` where `created_at` between ? and ?

Laravelの公式リファレンスはこれ→https://laravel.com/api/9.x/Illuminate/Database/Query/Builder.html#method_whereBetween