- ベストアンサー
Oracleで7日以内のデータ取得したい
SQLの初心者です。 A・・・日付(テキストデータ) B・・・ユーザ名とします。 C・・・テーブル名 select A,B form C where (本日から7日以内) で取得したいのですが、どうしてもうまく行きません。 WHERE SYSDATE -7 and SYSDATE という気持ちにしたいのですが、教示していだけませんでしょうか?よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
いえ、違いますね。 分までであれば、本日も分までの形にして比較しないといけません。 そしてAの日付データは必ず書式通りに変換できることが前提なのは前回と同じです。 (秒まで入っているような場合はエラーになるので右辺と同じように切り捨て処理が必要になります。) また、書いたコードがあっているかどうかはデータを用意して動作の結果を確認しましょう。 where to_date(A,'yyyy/mm/dd hh24:mi') >= trunc(sysdate- 7,'MI')
その他の回答 (1)
- hogya
- ベストアンサー率67% (49/73)
回答No.1
提示の情報では不明な部分として他に考慮が必要なのは「時間を含めるか」「データの日付の書式」があると思います。 以下は時間を考慮せず、日付データが"yyyy/mm/dd"の書式に変換できることが前提の場合です。 where to_date(A,'yyyy/mm/dd') >= (trunc(sysdate) - 7)
質問者
補足
ご回答ありがとうございます。時間 (分まで)を含めると where to_date(A,'yyyy/mm/dd hh24:mi') >=(SYSDATE - 7/24/60) であっていますでしょうか?
お礼
動作環境にて、希望のデータを取得することができました。 また細かい注意点まで、書いていただき、 ありがとうございました。 大変助かりました。