Rails - MySQL 错误 "Out of range value" 即使范围应该没问题?

Rails - MySQL errors "Out of range value" even though the range should be ok?

这是我的专栏:

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

这是我要保存的值:

-14400

我得到这个错误:

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

我也试了variable_with_the_amount.to_f,结果还是一样

我忽略了什么?

A DECIMAL(10,6) 允许小数点前 4 位,小数点后 6 位,共 10 位,但 14,400 需要 5 位。您需要 DECIMAL(11,6)DECIMAL(10,5) 来处理该值。

如果您要处理时区偏移,DECIMAL(10,2) 如果以小时为单位,则应该绰绰有余。如果以秒为单位,您根本不需要任何小数位。

此外,请记住,时区偏差在一年中变化很大,并非固定不变,在许多情况下甚至无法预测。政客的心血来潮随时可以改变。

DECIMAL(10,6)表示10位,包括小数点后6位。即+/-9999.999999为极限。

如果那应该是分钟,那么你有 10 天;这就是你想要的吗?

对于秒,86400 是一天,所以 DECIMAL(11,6) 可能就是您想要的。