中の人
【laravel mysql】date型の年月日等でデータを検索する
公開: 2023-04-19 11:17
更新: 2023-04-20 22:06
laravel
mysql
DATE_FORMAT
queryBuilder
こんにちは!
中の人です
こちらでoracleで年月日でデータを取得する内容を書きましたが、普段よく使うmysqlだとどうやるんだと気になって試したのでメモとして紹介します。
mysqlのdate型等から
- 2020年のデータを取得したい
- 4月のデータを取得したい(年日は関係ない)
- 1日のデータを取得したい(年月は関係ない)
のような感じでデータを検索する方法です。
やり方
$result = Article::query()
->whereRaw("DATE_FORMAT(released_at, '%Y') = ?", ['2023'])
->get();
月の場合は '%Y' => '%m'
日の場合は '%Y => '%d'
oracleと同様いろんな条件で検索することができるみたいです。
ほー(゚∀゚ )
ちなみに
timestamp型とdatetime型どちらも試しましたがどちらも同じでした。
またoracleではエラーとなったこちらの書き方
$result = Article::query()
->whereRaw("DATE_FORMAT(released_at, '%m') = :m", ['m' => '04'])
->get();
こちらも正常に動きました。(まぁそりゃそうか)
終わりに
おつー
通信エラーが発生しました。