• 締切済み

Oracle データベース SQL

質問させてください。 SQLについて教えてください。 SELECT文を作っていて、WHERE句で データを追加した日の指定(INSERT_DATE)を本日、というのをしたいと思っているのですが、なかなかできません。 格納するデータ型は、CHAR型なので WHERE INSERT_DATE =  TO_CHAR(SYSDATE, 'YYYYMMDD') で、試したのですができません…。 SQL実行はするのですが、該当なしになります。 教えていただければ、助かります。

みんなの回答

回答No.4

Oracleでシステム日付を取得するにはSYSDATEを使用します。 SELECT TO_CHAR(SYSDATE, 'YYYYMMDD') FROM DUAL で日本の日付が表示されるか確認してみてください。 oracleの日付の問題かもしれません。 これで当日の日付が予測値と同じかどうかまずは確認をお願いします。

  • watanabe04
  • ベストアンサー率18% (295/1598)
回答No.3

じゃぁ、どっかにTO_CHAR(SYSDATE, 'YYYYMMDD')を変数にして WHERE INSERT_DATE = 変数 にしてみるしかないかな。

  • watanabe04
  • ベストアンサー率18% (295/1598)
回答No.2

では、 WHERE INSERT_DATE =  '20220802' で動作しますか? 本当にYYYYMMDD形式で格納されていますか?

yt0426
質問者

補足

回答ありがとうございます! WHERE INSERT_DATE =  '20220802' であれは、検索可能です。 今日の日付をだして、CHAR型に変えて、WHERE句に指定すれば、できると思ったのですが、検索できずな状態です。

  • watanabe04
  • ベストアンサー率18% (295/1598)
回答No.1

INSERT_DATE = TO_CHAR(SYSDATE, 'YYYYMMDD') 右辺がYYYYMMDDなら左辺もYYYYMMDD に変換しなければならないのです。 左辺のINSERT_DATEってDATE型かな?バイナリーで持っています。

yt0426
質問者

補足

回答ありがとうございます。 INSERT_DATEはDATE型ではなく、CHAR型になっています。 データベースに格納するときは、 TO_CHAR(SYSDATE, 'YYYYMMDD') で登録しているようです。 これを、今日の日付として呼び出す時の方法がわかりません(;_;)

関連するQ&A