MYSQLについて質問です。

現在DATEDIFF関数を使用して、データを保存したいと考えています。
具体的にやりたいことですが、仕入れ日から販売日までどれくらいの期間かかったか?
というのを出したいと考えています。
データは以下のようになっており

テーブル:TEST
項目:DATA1 DATA2 DATA3

DATA1に仕入れ日がDATE型で入っています。 例)2009年12月1日
DATA2に販売日がDATE型で入っています。 例)2009年12月10日
DATA3にDATA1とDATA2の差が入るのが理想です。 例)9日

自分で作成をしてみたのですが、うまくいかず
UPDATE TEST SET DATA3=DIFFTIME(DATA1,DATA2)
としてみたのですが、失敗してしまいます。

うまく日にちを出すDATEDIFFのやり方を知っている方おりましたら教えていただけないでしょうか?
Versionも MySQL クライアントのバージョン: 4.1.22 となっており環境的には問題ないと思います。
お手数をおかけしますがよろしくお願いいたします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2009/12/17 12:10:12
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:HALSPECIAL No.1

回答回数407ベストアンサー獲得回数86

ポイント100pt

こちらでいかがでしょうか?

■日付の差 (日付間隔、日付範囲)

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/mysql_16.htm

・to_days() をうまく利用する

UPDATE TEST SET DATA3 = (to_days(DATA2) - to_days(DATA1))
id:aiomock

ご回答ありがとうございます。

2009/12/17 12:04:45

その他の回答1件)

id:HALSPECIAL No.1

回答回数407ベストアンサー獲得回数86ここでベストアンサー

ポイント100pt

こちらでいかがでしょうか?

■日付の差 (日付間隔、日付範囲)

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/mysql_16.htm

・to_days() をうまく利用する

UPDATE TEST SET DATA3 = (to_days(DATA2) - to_days(DATA1))
id:aiomock

ご回答ありがとうございます。

2009/12/17 12:04:45
id:kn1967 No.2

回答回数2915ベストアンサー獲得回数301

ポイント10pt

(1)データ型

DIFFTIME関数の戻り値は日数という数値です。

DATA3 のデータ型を確認してください。


(2)計算の行われ方

DIFFTIME(DATA1,DATA2)の場合はDATA1 - DATA2 = -9となってしまいます。

MySQL :: MySQL 4.1 リファレンスマニュアル :: 6.3.4 日付と時刻関数


(3)困った時の確認方法

MySQLに直接SELECTを流し込んで、正常に動くかどうかを確認します。

  SELECT DIFFTIME(DATA1,DATA2) FROM TEST;

問題がなければ同じく直接UPDATEを流し込んで書き換えます。

  UPDATE TEST SET DATA3=DIFFTIME(DATA1,DATA2);

ここまで問題がなければ、初めてプログラムのほうに書きます。

そしてさらに動作確認をします。

よほど使い慣れていれば別だと言いたいのですが、

慣れた人でも、いえ、慣れた人ほど上記のような確認は行います。

  • id:aiomock
    kn1967 さん

    ご回答ありがとうございます。
    確認作業きちんと行いたいと思います。
    ご指摘ありがとうございます。
  • id:kn1967
    確認作業怠ったのは私のほうですね。申し分けない。
    (なんで書き間違ったのか自分でも判らない・・・)

    DIFFTIME はすべて DATEDIFF との書き間違いです。
    スミマセンがすべて読み替えてください。

    ところで・・・、to_daysで計算できたのなら、作業上は問題ないと思いますけど、
    DATEDIFFが動かないとなると気にはなりますので、念のため確認はしておいてください。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません