質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Model

MVCモデルの一部であるModelはアプリケーションで扱うデータとその動作を管理するために扱います。

Eloquent

Eloquentとは、PHPフレームワークのLaravelに最初から含まれているORM(Object-relational mapping:オブジェクト関係マッピング)です。

Q&A

1回答

2709閲覧

eloquentのクエリスコープでbetweenを使用して日付検索を実現したい

komugisan

総合スコア0

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Model

MVCモデルの一部であるModelはアプリケーションで扱うデータとその動作を管理するために扱います。

Eloquent

Eloquentとは、PHPフレームワークのLaravelに最初から含まれているORM(Object-relational mapping:オブジェクト関係マッピング)です。

0グッド

0クリップ

投稿2022/03/10 03:45

inputで指定した日付で
〇年〇月〇日~〇年〇月〇日の間のデータを検索したいのですが、
timestamp型で時間も含んでいるカラムでの検索になるため、日付のみで検索できるようにしたいと思っています。

実現したいMYSQL実行文は下記です。
※これで実行すると実現したい検索結果が得られました

select * from テーブル名 where DATE_FORMAT(created_at, "%Y-%m-%d") between 'Y-m-d' and 'Y-m-d';

調べて下記のようなコードを記述しましたが検索結果が空になってしまいました。

$query->whereRaw('DATE_FORMAT("created_at","%Y-%m-%d")')->whereBetween('created_at', [$startDate,$endDate]);

下記だとカラム名を認識してもらえませんでした。

$query->whereRaw('DATE_FORMAT("created_at","%Y-%m-%d") as test')->whereBetween('test', [$startDate,$endDate]);
$query->whereBetween("created_at(date, '%d-%m-%Y')", [$startDate, $endDate]);

回答いただけると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/03/10 04:56

betweenで挟む方をTIMESTAMP型に変換してクエリー実行する方をおすすめします。カラムをいちいち加工して絞り込むのは式でインデックスを組んでいない限り遅くなるわけで。
guest

回答1

0

/** @var Carbon $startDate */ /** @var Carbon $endDate */ $query->whereDate('created_at', '>=', $startDate) ->whereDate('created_at', '<=', $endDate) ->get();

投稿2022/03/10 10:12

phper.k

総合スコア3923

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問