2016-04-13 17 views
0

これは私のコラムです:Rails - MySQLのエラー "範囲外の値"でも範囲は問題ありませんか?

-14400 

をそして、私はこのエラーを取得する:

t.decimal "update_timezone_offset",  precision: 10, scale: 6 

これは私が保存しようとしている値である

Mysql2::Error: Out of range value for column 'update_timezone_offset' at row 1: 

私もvariable_with_the_amount.to_fを試してみましたが、結果は同じでした。

私は何を見落としていますか?

答えて

3

DECIMAL(10,6)は、小数点の前に4桁、後に6桁、合計で10個ですが、14,400は5が必要です。この値を処理するには、DECIMAL(11,6)またはDECIMAL(10,5)が必要です。

時間帯のオフセットを扱う場合は、DECIMAL(10,2)が十分である必要があります。数秒で小数点以下の桁数は必要ありません。

さらに、タイムゾーンのオフセットは年中変化し、固定されていないことが多く、多くの場合予測できません。政治家の気まぐれは、いつでも変更することができます。

1

DECIMAL(10,6)は、小数点の後に 6を含むを意味する10桁を意味する。すなわち、+/- 9999.999999が上限です。

これが分であると想定されている場合は、10日間です。それはあなたが望んでいたものですか?

秒間は86400が1日なので、DECIMAL(11,6)があなたの望むものである可能性があります。

関連する問題