想定シーン:
毎日朝5時に、昨日の 00:00 ~ 23:59 のデータを抽出したい場合。
少し考えてしまったので、自分用に忘備録。
select * from table_name where date between ¥
to_timestamp(to_char(current_timestamp + '-1 days', 'YYYY-MM-DD 00:00:00'),'YYYY-MM-DD HH24:MI:SS') ¥
and to_timestamp(to_char(current_timestamp + '-1 days', 'YYYY-MM-DD 23:59:59'),'YYYY-MM-DD HH24:MI:SS');
流れ:
①.現在日時から-1日した、文字列を作る(時間は 00:00:00)
②.①のままだとタイムスタンプとして扱えないので to_timestampで変換する
うーん。もっとシンプルに書ける気が・・。
・to_char()
タイムスタンプを文字列に変換する
・to_timestamp()
文字列をタイムスタンプに変換する