- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:日付範囲内かつ時刻も範囲内のデータをとるには?)
日付範囲内かつ時刻も範囲内のデータを取得する方法
このQ&Aのポイント
- データベーステーブルの中で日付範囲内かつ時刻も範囲内のデータを取得するためには、条件式を使用します。
- 例えば、現在の時刻が指定の日付範囲に該当するデータを取得する場合、次のような条件式を使用します。
- SELECT * FROM date_tbl WHERE now() BETWEEN start_date AND end_date;
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
postgreSQLの環境はないのですが、下記の様なSQLでは抽出できないでしょうか。 SELECT no FROM date_tbl WHERE start_date <= now() AND end_date >= now() ただし、now()はトランザクションが開始された時刻を返すそうなので、厳密な比較を行いたい時や、コネクションプーリングなどを使用している場合は注意が必要なようです。
お礼
テーブルに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')