• ベストアンサー

Oracleで7日以内のデータ取得したい

SQLの初心者です。 A・・・日付(テキストデータ) B・・・ユーザ名とします。 C・・・テーブル名 select A,B form C where (本日から7日以内) で取得したいのですが、どうしてもうまく行きません。 WHERE SYSDATE -7 and SYSDATE という気持ちにしたいのですが、教示していだけませんでしょうか?よろしくお願いします。

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

  • ベストアンサー
  • hogya
  • ベストアンサー率67% (49/73)
回答No.2

いえ、違いますね。 分までであれば、本日も分までの形にして比較しないといけません。 そしてAの日付データは必ず書式通りに変換できることが前提なのは前回と同じです。 (秒まで入っているような場合はエラーになるので右辺と同じように切り捨て処理が必要になります。) また、書いたコードがあっているかどうかはデータを用意して動作の結果を確認しましょう。 where to_date(A,'yyyy/mm/dd hh24:mi') >= trunc(sysdate- 7,'MI')

momonova
質問者

お礼

動作環境にて、希望のデータを取得することができました。 また細かい注意点まで、書いていただき、 ありがとうございました。 大変助かりました。

その他の回答 (1)

  • hogya
  • ベストアンサー率67% (49/73)
回答No.1

提示の情報では不明な部分として他に考慮が必要なのは「時間を含めるか」「データの日付の書式」があると思います。 以下は時間を考慮せず、日付データが"yyyy/mm/dd"の書式に変換できることが前提の場合です。 where to_date(A,'yyyy/mm/dd') >= (trunc(sysdate) - 7)

momonova
質問者

補足

ご回答ありがとうございます。時間 (分まで)を含めると where to_date(A,'yyyy/mm/dd hh24:mi') >=(SYSDATE - 7/24/60) であっていますでしょうか?