• ベストアンサー
  • すぐに回答を!

前日の日付をとりたい!

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

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数13798
  • ありがとう数9

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

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

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

その他の回答 (2)

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

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

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

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

共感・感謝の気持ちを伝えよう!

質問者からの補足

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

関連するQ&A

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

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

  • 列の名前を消したい

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

  • 日付の減算方法

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

  • PL/SQLで、期間計算

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

  • 日数算出SQL

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

  • SQL Sever での日付の差の求め方(月単位小数付き)

    Oracle で日付の差を求める関数に「months_between」 というものがあり、日付A(yyyy-mm-dd)と 日付B(yyyy-mm-dd)の差(A<B の場合)を算出する時は、 select months_between(B ,A) from dual; で算出できます。 しかも、日付差が何ヶ月で返ってきて、月の端数は 小数点以下として返ります。 これを、SQL Server で実現しようとした場合、 どのようにすればよいでしょうか? SQL Server には「datediff」という関数があり、 時間単位を'm'に設定すれば日付差が月で返って きますが、小数点以下が確か切り捨てられたように 記憶しています。 何とかして、小数点以下も算出できる方法を ご存知の方がいらっしゃいましたら、 お教えください。 宜しくお願い致します。 以上

  • ACCESSのクエリで日付を計算したい

    どうか宜しくお願い致します。 ACCESSのデータで、日付が入力されている列があります。 その日付から2ヶ月後の月を新しい列に自動に表示させたいと 思っています。 例) 2008/1/1~2008/1/31までのデータは、新しい列に3月と表示させたい。 2008/2/1~2008/2/28までのデータは、新しい列に4月と表示させたい。 クエリを作成し、新しい列を作ってそこへ計算式を入力すればいいのかな?と思っているのですが、どのような計算式を入れればいいのか分かりません・・・。 どなたか詳しい方、アドバイスお願い致します。

  • このような場合の日付計算について

    例えば、 商品コード(PRIMARY),売れた日 というカラムがあるDBのテーブルがあって、 これでどの商品がいつ売れたのかを管理しているとします。 このテーブルから、商品Aが先月何個売れたか、N月に何個売れたか、先週何個売れたか、ここ半年の週別売り上げ個数一覧・・・ のようなデータを取得するプログラムを組もうとしています。 しかし日付の計算の仕方がどうにもわからず困っています。 「今日の日付」という情報から、上記のような情報がSQLで取れるようにするための時間的条件を指定できる日付情報の算出の仕方を教えてください。 お願いいたします。

    • 締切済み
    • PHP
  • 数値データを日付データとして扱いたい。

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

  • インストールコンポーネント

    Oracleのインストールにおいて必要になるコンポーネントについて調べています。 使用用途は、ローカルからのみでProC及びSQLPlusから の接続を行う、DBの構築となります。 使用するOracleは9iのリリース2になります。 OS:Windows sever 2003 以上、お願いします