• ベストアンサー

日付計算について

OSはunixでc言語、Oracleを使ってます。 文字型の日付データ(YYYYMMDD)を元に、-n日を取得する方法を教えていただきたいのですが。 宜しく御願い致します。

  • ume34
  • お礼率100% (5/5)

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

  • ベストアンサー
  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.2

こんにちわ。 n 日前の日付は、DATE 型で以下のように直接演算 できます。 to_date(日付, 'YYYYMMDD') -n これを、文字列変数に取り込めばOk ですが、同じ日付 書式で再度フォーマットした方が良いでしょう。 to_char(to_date(日付, 'YYYYMMDD') -n, 'YYYYMMDD') 日付を管理するのであれば、DATE 型を使用した方が 楽ですょ。

ume34
質問者

お礼

ありがとうございます。 早速、プログラミングしてみます。

その他の回答 (1)

noname#4252
noname#4252
回答No.1

C FAQ ある日からN日後が何月何日かをどうやって計算するのか http://www.catnet.ne.jp/kouno/c_faq/c13.html#14

参考URL:
http://www.catnet.ne.jp/kouno/c_faq/c13.html#14
ume34
質問者

お礼

ありがとうございます。 ご紹介いただいたサイト、今後も活用させていただきます。

関連するQ&A

  • 日付の変換方法について

    OSはunix(Solaris8)で、c言語を使ってます。 DBからDATE型の日付データ(YYYYMMDDhhmmss)を取得してきて、 30分後の時間を計算して元のDATE型に戻して格納する処理を行いたい のですが、一度数値に変換した方がよいのでしょうか? それとも、もっと効率の良い方法がありましたら教えて下さい。 宜しく御願い致します。

  • シェル内での文字列日付計算

    お世話になります。 シェルスクリプト内であるファイルからファイル名日付を取得し、 その日付の1日前の日付を取得するためにはどうしたらよいのでしょうか? 現在日時からの日付計算をする方法は見つけることできましたが、 文字列(yyyymmdd)から直接日付計算を行うためにはどうすればよいのでしょうか? 単純に`expr yyyymmdd - 1`のような計算では20121001 → 20121000のようになり、 日付として計算されません。 上記、ご存知の方がいればご教示いただきたく存じます。 よろしくお願いいたします。

  • UNIXシェル内での日付計算

    UNIX(今使ってるのがHP-UX11i)上のバッチシェルで、 指定した日数分の前の日付を取得したいのですが、 何か方法はないでしょうか。 (例) 現在の日付: 20060511 指定した日数: 10(MAX値は100程度) 取得する日:20060501

  • 日付の切り出し方法について

    OracleのSQLにおいて、 日付の値を指定した文字だけ切り出して取得する方法がわかりません。 例えば、日付型の"9999/01/15"という値から "9999/01/"という値だけ切り出すことは可能でしょうか? 基本的な質問で申し訳ございませんが、 どなたかご教授いただけませんでしょうか? よろしくお願いいたします。

  • UNIXシェル内での日付計算

    日付計算系の質問はたくさんありましたがこのタイプが 無かったんで質問させていただきます。 やりたいことは題名そのまんまなんですが、具体的に言う と、UNIX(今使ってるのがHP-UX11.0)上のバッチシェル で、前日の日付を取得したいのです。できれば中間ファ イル(一時ファイル)などを生成せずにシェル内で計算を 済ませたいのですが、何か方法はないのでしょうか。 (Ex.) 現在の日付   2002年1月1日 取得したい日付 2001年12月31日 具体的な方法とか書いてあるとさらにうれしいのですが・・・ それではよろしくお願いします。

  • ピボットテーブルで日付をグループ化 日付が文字列になる

    こんにちは。エクセル2003です。 ピボットテーブルウィザードを使い、 ピボットテーブルを作成し 行のフィールドに日付をドラッグして グループ化→「月」「日」を選択してOKを押すと 画像のようになります。 この時、日付が「○月○日」という表示形式になり C列でデータタイプを調べたところ、「2」になり、文字列となっています。 元データではなくピボットテーブルで作成した日付の情報を取得してまだ作業することがあるので 元の年月日がわかるようにしたいのですが不可能でしょうか?

  • 日付の計算について

    C言語なのですが、 DATE型の日付に1ヶ月または3ヶ月、または6ヶ月の月をプラスするという計算方法はどういうのがあるでしょうか?いったん、tm型に変換してから行うという形が無難なのでしょうか?

  • FTPのバッチファイルで日付を引数で与えたい

    いつもお世話になっております。 FTPのバッチファイルに引数を与える良い方法をご存知ありませんか。 FTPの中では環境変数は使えないとのことですし、悩んでいます。 取得するファイルは日付毎のディレクトリに入っていて、取得後も日付毎のディレクトリに保管するので日付の指定が必要なのですが。 [ftpget.bat]------------------------------------------ ftp-s:ftpget.bat open ホスト名 ユーザー名 パスワード bin prompt cd /~対象ホストのディレクトリ~/YYYYMMDD/host1 !mkdir C:\YYYYMMDD lcd C:\YYYYMMDD mget *.txt quit ---------------------------------------------------- このYYYYMMDDの部分を、『ftpget.bat 20081125』のようにバッチを流す時の引数で与えたいです。 日付は3日前だったり昨日だったり今日だったりします。 今は直接ファイルを編集してYYYYMMDDの部分3箇所を手で直してからバッチファイルを叩いています。 よろしくお願いいたします。

  • 日付の計算について

    C言語なのですが static startDate[12] = {"20021201"}; static endDate[12] = {"20030331"}; static chkDate[12] = {"20030101"}; というchar型に変数に日付の内容が入ってる場合、 chkDateは startDate ~ endDateの期間内であるかどうか のチェックをするプルグラムのやり方を悩んでいます。 よろしくお願い致します。

  • 日付を「分」に変換したい

    システム日付からyyyymmdd後までを「分」で取得したいのですが、方法が思いつきません。 例えば・・ 『2004年3月23日 から 1年2ヶ月後までの時間を「分」で取得する。』 みたいな感じです。 どなたかよろしくお願いします。

    • ベストアンサー
    • Java

専門家に質問してみよう