- 締切済み
Oracle データベース SQL
質問させてください。 SQLについて教えてください。 SELECT文を作っていて、WHERE句で データを追加した日の指定(INSERT_DATE)を本日、というのをしたいと思っているのですが、なかなかできません。 格納するデータ型は、CHAR型なので WHERE INSERT_DATE = TO_CHAR(SYSDATE, 'YYYYMMDD') で、試したのですができません…。 SQL実行はするのですが、該当なしになります。 教えていただければ、助かります。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- yumi-access
- ベストアンサー率21% (36/170)
Oracleでシステム日付を取得するにはSYSDATEを使用します。 SELECT TO_CHAR(SYSDATE, 'YYYYMMDD') FROM DUAL で日本の日付が表示されるか確認してみてください。 oracleの日付の問題かもしれません。 これで当日の日付が予測値と同じかどうかまずは確認をお願いします。
- watanabe04
- ベストアンサー率18% (295/1598)
じゃぁ、どっかにTO_CHAR(SYSDATE, 'YYYYMMDD')を変数にして WHERE INSERT_DATE = 変数 にしてみるしかないかな。
- watanabe04
- ベストアンサー率18% (295/1598)
では、 WHERE INSERT_DATE = '20220802' で動作しますか? 本当にYYYYMMDD形式で格納されていますか?
- watanabe04
- ベストアンサー率18% (295/1598)
INSERT_DATE = TO_CHAR(SYSDATE, 'YYYYMMDD') 右辺がYYYYMMDDなら左辺もYYYYMMDD に変換しなければならないのです。 左辺のINSERT_DATEってDATE型かな?バイナリーで持っています。
補足
回答ありがとうございます。 INSERT_DATEはDATE型ではなく、CHAR型になっています。 データベースに格納するときは、 TO_CHAR(SYSDATE, 'YYYYMMDD') で登録しているようです。 これを、今日の日付として呼び出す時の方法がわかりません(;_;)
補足
回答ありがとうございます! WHERE INSERT_DATE = '20220802' であれは、検索可能です。 今日の日付をだして、CHAR型に変えて、WHERE句に指定すれば、できると思ったのですが、検索できずな状態です。