• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:日付範囲内かつ時刻も範囲内のデータをとるには?)

日付範囲内かつ時刻も範囲内のデータを取得する方法

このQ&Aのポイント
  • データベーステーブルの中で日付範囲内かつ時刻も範囲内のデータを取得するためには、条件式を使用します。
  • 例えば、現在の時刻が指定の日付範囲に該当するデータを取得する場合、次のような条件式を使用します。
  • SELECT * FROM date_tbl WHERE now() BETWEEN start_date AND end_date;

質問者が選んだベストアンサー

  • ベストアンサー
  • smileeeen
  • ベストアンサー率70% (21/30)
回答No.1

postgreSQLの環境はないのですが、下記の様なSQLでは抽出できないでしょうか。 SELECT no FROM date_tbl WHERE start_date <= now() AND end_date >= now() ただし、now()はトランザクションが開始された時刻を返すそうなので、厳密な比較を行いたい時や、コネクションプーリングなどを使用している場合は注意が必要なようです。

noname#119939
質問者

お礼

テーブルにdate_flgというカラムを追加して、 下記のSQLを作成することで解決できました。 回答ありがとうございました。 SELECT * FROM a_tbl WHERE date_flg = '1' AND CURRENT_DATE BETWEEN to_date(start_date , 'YYYY-MM-DD') AND to_date(end_date, 'YYYY-MM-DD') OR date_flg = '2' AND CURRENT_DATE BETWEEN to_date(start_date , 'YYYY-MM-DD') AND to_date(end_date, 'YYYY-MM-DD') AND CURRENT_TIME BETWEEN to_char(start_date , 'HH24:MI:SS') AND to_char(end_date, 'HH24:MI:SS')

関連するQ&A