• ベストアンサー

前日の日付をとりたい!

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

  • DOBO
  • お礼率30% (35/114)

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

  • ベストアンサー
  • 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

  • 列の名前を消したい

    DBはオラクル、telnetからsqlplusを利用してデータを取り出してます。 出力される列の名前を始めから表示させないようにしたいのですが、そのようなことはできるのでしょうか? また、もしできるであれば、その方法を教えてください。 よろしくお願いします。

  • 日付の減算方法

    日付の計算で減算を行いたいのですが、 どのようにすればよろしいのでしょうか? 日付マスタから取得した項目「日付」から、 3ヶ月前の年月を取得したい。 ※日付マスタの項目「日付」(属性;日付型)には、 1レコードのみ。 ご教授よろしくお願い致します。 DB:Oracle9i

  • エクセルで数字データを日付けにしたい

    数値として20030608と入力されているデータを日付けデータとして、2003年6月8日としたい。 15日後は何月何日になるかとの計算をするために日付けに変える必要があると認識しているのですが 単純に20030608+15日だと20030623だけど +30日だと20030638となってしまう これを20030708とか2003/7/8としたいのです。 教えてください。

  • Oracleで日付の計算をさせたいのですが・・・

    Oracleで日付の計算をさせたいのですが・・・ 例えば、DBに入っているデータの日付の1か月後を抽出したいとします。 DBの中に入っているデータが、「2011/01/31」だったとします。 関数を使って1か月後を計算すると「2011/02/28」になるかと思います。 欲しいデータはこのような形ではなく“1か月後の日付が無かったら後ろ倒し”させたいのです。 上記の例で言えば「2011/01/31」の1か月後は「2011/03/01」としたいのです。 こういうのをやりたかったらプロシージャを組まなくてはいけないのでしょうか? 出来ればバッチファイルの中で実現したいのですが・・・

  • 日数算出SQL

    すみません教えてください。 DB→Oracle9iで「日付A」と「日付B」の間の日数を表示させようとしているのですが、うまくいきません。 参考書などでは、「Months_Between関数」でも試してみたのですが、うまくいきません。単純なやりかたあればおしえていただきたいのですが、よろしくお願いいたします。

  • 数値データを日付データとして扱いたい。

    違うDBからファイルをDLしてきて、テーブルに入れているデータがあります。 その違うDBの日付データが分割してインポートされてしまいます。   2 | 9 | 18 ↑こんな感じです。 これを日付データとして扱いたいのです。(2002/09/18というように。) 表示だけでしたらクエリーとかに [年]&"/"&[月]・・ とかってやればいいのですが、そうではなくて、日付のデータとしたいのです。 Excelですと「Date」関数というのがあって、それに 「Date(年,月,日)」と入れれば、日付データとなると思うのですが、Access にはこのような関数はないのでしょうか?

  • PLSQLで和暦で一年前の値を求める

    PLSQLで和暦で一年前の値を求めるためにadd_monthsを使いたいのですがoracle10ではうまく機能しません。 to_char(add_months(1803,-1),yymm) 1703という値を取得したいのですがどうすればよいのでしょうか?

  • Excelにおける日付

    仕事用に他部署からデータをExcelでいただいたのですが、1万件近くのデータが入っており、このデータの日付が全て7桁の数値として入力されているため、活用できず困っています。 Excelに詳しい方のお知恵を拝借したく、質問に参りました。 行いたい処理は、Excelのあるセルに「20050301」という7桁の数字が入力されている場合、これを別の1つのセル内に「2005年3月1日」という日付として認識させたいのです。 そういったことはできるのでしょうか? セルの書式で、表示形式をユーザー定義・####年##月##日とすれば、「2005年03月01日」と表示させることは簡単にできますが、そうではなく、7桁の数字を日付として認識させ、日付関数を使って日数の計算をしたいのです。 A1セルに「20040301」、B1セルに「20050301」と入力されているとしたら、これをそれぞれ「2004年3月1日」、「2005年3月1日」と認識させ、その間の日数が365日という結果を算出するのが目的です。 ダイレクトにできなければ、途中にいくつかの列を経由しても構いません。 よろしくお願いします。

  • エクセルの日付計算

    エクセルの日付計算 エクセルの日付計算について教えてください。具体的に言いますと、 3月12日を基本納期として何日早くできたか、何日遅れてしまったがを表示したいのです。たとえば3月12日を基本に3月15日と入力すると「―3日」、3月10日と入力すると「2日」を表示したいのです、「日」の表示は特にいりません、数値だけで良いです。宜しくお願いいたします。

  • PL/SQLで、期間計算

    日付の計算で、 月を加えて日付を出すadd_monthsや 期間を出すmonths_betweenがありますが、 例えば、 期間が「2000/04/01~2001/02/15」 というものから 月数と日数を計算する方法というのは 何かありますでしょうか? (この例でいうと月数が10,日数が15(残り日数) という具合で答えが出せる計算) 月数はどうにか出せたとしても、 残りの日数をどう正確に出すかがわからなくて・・。 どなたか方法をご存知の方、教えて頂きたい です。宜しくお願いします。