CREATE TABLE t1 (f1 double, f2 BIGINT); INSERT INTO t1 SET f1 = -1.0e+30 ; INSERT INTO t1 SET f1 = +1.0e+30 ; SELECT f1 AS double_val, CAST(f1 AS SIGNED INT) AS cast_val FROM t1; double_val cast_val -1e+30 -9223372036854775808 1e+30 -9223372036854775808 SELECT -1.0e+30 AS double_val, CAST(-1.0E+30 AS SIGNED INT) as cast_val; double_val cast_val -1e+30 -9223372036854775807 SELECT +1.0e+30 AS double_val, CAST(+1.0E+30 AS SIGNED INT) as cast_val; double_val cast_val 1e+30 9223372036854775807 UPDATE t1 SET f2 = f1; Warnings: Warning 1264 Data truncated; out of range for column 'f2' at row 1 Warning 1264 Data truncated; out of range for column 'f2' at row 2 SELECT f1 AS double_val, f2 AS impl_cast_val FROM t1; double_val impl_cast_val -1e+30 -9223372036854775808 1e+30 9223372036854775807