• ベストアンサー

前日の日付をとりたい!

DBはOracleなんですが、Windowsのtelnetからsqlplusを利用して、データをとってきています。そこで、入力した日付から一日前を計算して、そのデータを取りたいのですが、どのようにすればいいのでしょうか?月のように、ADD_Monthsみたいなものはないのでしょうか?教えてください。よろしくお願いいたします。

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

  • ベストアンサー
  • paz777
  • ベストアンサー率47% (77/163)
回答No.2

日付の取り方ですよね? 一応、考えられる方法で 1.日付入力による方法(例として今日の日付)   = (TO_DATE('2000-08-01','YYYY-MM-DD')-1) 2.システム日付を利用する方法   = (SYSDATE-1) 検索する項目がCHAR型であれば「TO_CHAR関数」と合わ せて使用すれば良いと思います。 後、補足にあった「月またがり」の件ですが、σ(^^)の 環境(UNIX:HP-UX10.20 Oracle8)では問題なく計算 してくれます。 多分、2000年問題パッチが施されていれば問題ないと 思います。

DOBO
質問者

お礼

ありがとうございます!!! 解決しました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • who
  • ベストアンサー率21% (4/19)
回答No.3

再度、回答です。 月またがりの件ですが、正常に計算されないというのは、おそらくAdd_Monthsの方ではないでしょうか。 paz777さん同様、私の環境でも問題はないです。 Oracleは、7.3.2、7.3.4、8.0.4、8.0.5と使用していますが、特に問題も出ておりません。 どうしても、正常に動作しないのであれば、再度、補足願います。

DOBO
質問者

お礼

ありがとうございます。参考になりました。

すると、全ての回答が全文表示されます。
  • who
  • ベストアンサー率21% (4/19)
回答No.1

日付型でしたら、一日前はその日付データに、-1することで前日の日付になりますよ。

DOBO
質問者

補足

ありがとうございます。 本を読んだところ、単に-1では、月をはさんだ時、正常に計算されないと書いてあったと思うのですが、、、その辺はどうなんでしょうか? よろしくお願いします。

すると、全ての回答が全文表示されます。

関連するQ&A