ホームページ > PHPフレームワーク > Laravel > 2つの間のlaravelクエリ

2つの間のlaravelクエリ

王林
リリース: 2023-05-20 16:17:38
オリジナル
1769 人が閲覧しました

Laravel では、クエリ ステートメントは、Laravel フレームワークで最も一般的に使用される関数の 1 つです。データ量とクエリ要件の違いにより、2 つの日付間のレコードをクエリする必要がある状況がよく発生します。 Laravel フレームワークが提供するクエリビルダーは非常に強力ですが、その賢い使い方をマスターしていないと、クエリ文を作成する過程でいくつかの問題が発生します。この記事では、Laravel で 2 つの日付間のレコードをクエリする方法を紹介します。

まず、Laravel では、クエリ ビルダーの whereBetween() メソッドを使用して 2 つの日付の間のレコードを検索できることを明確にしてください。 whereBetween() メソッドは、フィールド名と配列という 2 つのパラメーターを受け入れます。このうち、配列の 2 つの要素は 2 つの日付を表します。

たとえば、users テーブルの登録日が特定の時間範囲内にあるユーザーをクエリする場合、次のコードを使用できます。

$users = DB::table('users')
                ->whereBetween('created_at', ['2021-06-01', '2021-06-30'])
                ->get();
ログイン後にコピー

上記のコードは、register_date を含むユーザー情報を返します。 2021年6月。このうち、created_at は users テーブルの日付フィールドであり、whereBetween() メソッドでこのフィールドの値の範囲を指定します。 get() メソッドはクエリ結果を取得するために使用され、クエリ結果を含む Collection オブジェクトを返します。

whereBetween() メソッドに加えて、whereDate() メソッドを使用して特定の日のレコードをクエリすることもできます。たとえば、登録日が特定の日であるユーザーについて users テーブルをクエリする場合、次のコードを使用できます。

$users = DB::table('users')
                ->whereDate('created_at', '2021-06-01')
                ->get();
ログイン後にコピー

上記のコードは、regist_date が 2021 年 6 月 1 日であるユーザー情報を返します。 whereDate() メソッドは、created_at フィールドの値が 2021 年 6 月 1 日であるレコードを指定します。 get() メソッドは、クエリ結果を取得するためにも使用されます。

whereBetween() メソッドと whereDate() メソッドに加えて、Laravel は日付をクエリするための他のメソッドもいくつか提供します。これらのメソッドには、whereDay()、whereMonth()、where Year()、whereTime()、whereHour() などが含まれます。これらのメソッドは、特定の日、特定の月、特定の年、特定の時刻などの情報をクエリするために使用されます。使用方法はwhereBetween()メソッドやwhereDate()メソッドと同様なので、ここでは詳しく説明しません。

Laravel のクエリビルダーの日付クエリメソッドは、デフォルトで現地時間ではなく UTC 時間を使用することに注意してください。これは、現地時間が何であっても、クエリは UTC 時間で計算されることを意味します。したがって、日付クエリを実行するときは、渡される日付パラメータが UTC 時間と一致していることを確認する必要があります。

実際のアプリケーションでは、タイム ゾーンの問題によるクエリ エラーを回避するために、通常、クエリの前に、または構成ファイルでタイム ゾーンを指定します。 Laravel は、タイムゾーンをグローバルに構成する方法、つまり config/app.php ファイルでタイムゾーンを設定する方法を提供します。

Laravel で時間を UTC 時間に変換する方法は次のとおりです。

$date = new Carbon('2021-06-01 12:00:00', 'Asia/Shanghai');
$utcDate = $date->utc();
ログイン後にコピー

上記のコードは、現地時間「2021-06-01 12:00:00」を UTC 時間に変換します。 $utcDate 変数を指定して値を割り当てます。 Carbon は Laravel に組み込まれている日付と時刻を処理するクラスで、非常に使いやすいです。このクラスは、さまざまなシナリオのニーズに簡単に対応できるさまざまな時間変換メソッドを提供します。

要約すると、この記事では、Laravel で 2 つの日付間のレコードをクエリする方法を紹介します。クエリ ビルダーを使用して日付クエリを実行する場合は、タイム ゾーンの設定と、渡された日付パラメータが UTC 時間と一致しているかどうかに注意する必要があります。クエリ ビルダーを柔軟に使用することで、開発をより簡潔かつ効率的に行うことができます。

以上が2つの間のlaravelクエリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート