这是我的专栏:
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
,但结果是一样的。
我在俯瞰什么?
答案 0 :(得分:3)
DECIMAL(10,6)
允许小数点前4位,后6位,总共10位,但14,400需要5.您需要DECIMAL(11,6)
或DECIMAL(10,5)
才能处理该值
如果你正在处理时区偏移,DECIMAL(10,2)
应该足够多,如果这是几个小时。如果在几秒钟内你根本不需要任何小数位。
此外,请记住,时区偏移在一年中变化很大,并且不是固定的东西,在许多情况下甚至是不可预测的。政治家的一时兴起可以随时改变它们。
答案 1 :(得分:1)
DECIMAL(10,6)
表示小数点后10位,包括 6。也就是说,+ / - 9999.999999是限制。
如果那应该是分钟,那么你有10天;那是你想要的吗?
对于秒,86400是一天,所以DECIMAL(11,6)
可能是你想要的。