BeginnerEngineerBlog
中の人
中の人

【laravel oracle】date型の年月日等でデータを検索する

公開: 2023-04-18 15:47
更新: 2023-04-24 00:51
453
laravel oracle TO_CHAR queryBuilder
メモです。

こんにちは!

中の人です。

個人的なメモです。

oracleのdate型の中から

・2020年のデータを取得したい
・4月のデータを取得したい(年日は関係ない)
・1日のデータを取得したい(年月は関係ない)

みたいな感じでデータを検索する方法です。

(
20230420追記
mysqlで同じような実装方法はこちら
)


やり方


       $yyyy = '2020';
       $accept = DB::table('HOGE')
           ->whereRaw("TO_CHAR(CREATE_DATE, 'YYYY') = ?", [$yyyy])
           ->get();

こんな感じです。


月の場合は 'YYYY' => 'MM'
日の場合は 'YYYY' => 'DD'

に変更すれば所得できます。

上記参考リンクを見てみると、その他元号の略称とかいろいろ検索できるみたいです。
へー(゚∀゚ )


ちなみに


TO_CHARはdate型を文字列に変換しているので、例えば

2023-04-14 10:07:57.000

こんなデータから月で検索しようとして

       $mm = '4'; // 👈 頭に0がない
       $accept = DB::table('HOGE')
           ->whereRaw("TO_CHAR(CREATE_DATE, 'MM') = ?", [$mm])
           ->get();

頭に'0'がついてないと取得できません。

また、

    $mm = '4';
    $accept = DB::table('HOGE')
      ->whereRaw("TO_CHAR(CREATE_DATE, 'MM') = :mm", ['mm' => $mm])
      ->get();

この書き方もエラーになってできませんでした。


終わりに


乙!
0
0
0
0
通信エラーが発生しました。
【広告】
似たような記事