プロが教える店舗&オフィスのセキュリティ対策術

MySQLのTIMEDIFFのバグについて教えて下さい。

環境:MySQL 5.0.77

MySQLのテーブルにdateというtimedate型のカラムを作ります。

カラムには 2011-01-01 00:00:00 とう形でデータが登録してあります。

現在の時刻と登録してあるdateの差を出したいと思い、

TIMEDIFF(NOW(), date)

を使うと

「838:59:59」という値が返ってきてしまいます」

下記のホームページに MmySQLのバージョンが4.1のバグと記載されていました。

http://onlineconsultant.jp/pukiwiki/?MySQL%204.1 …


バージョン5でも同じような症状が出るのでしょうか?

解決策はどのようにすればよいのでしょうか?

複数のサーバーで実験できる環境があるのですが、MySQL5.0.77でちゃんと計算される場合と、上記のような変な数字になってしまう場合があります。

A 回答 (1件)

Time型の仕様では。


http://dev.mysql.com/doc/refman/5.6/en/time.html

>解決策

データが範囲内に収まるなら、timestamp型にcastして秒数計算するとか、
おさまらないなら、日付部と時刻部に分割して差を計算してから秒数として合わせるとか。
    • good
    • 0
この回答へのお礼

osamuyさん

ご回答ありがとうございます。
データが範囲内に収まっていたのでtimestamp型にして実行したらうまくいきました。
ありがとうございました。

お礼日時:2011/12/25 13:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!