数値を異なる数値型の列に記録する

大きな記憶領域を占める浮動小数点型の値を、小さな記憶領域の場所に代入するとき、その値が小さな記憶領域の場所に記録できない値であればエラーとなります。 次に例を示します。create table mytable (r REAL, d DOUBLE PRECISION); 0 rows inserted/updated/deleted INSERT INTO mytable (r, d) values (3.4028236E38, 3.4028235E38); ERROR X0X41: The number '3.4028236E38' is outside the range for the data type REAL.

浮動小数点型の値を、INTEGERの列に記録できます。小数点以下の部分は切り捨てられます。次に例を示します。INSERT INTO mytable(integer_column) values (1.09e0); 1 row inserted/updated/deleted SELECT integer_column FROM mytable; I --------------- 1

整数型には、その範囲内で小数のある数値を置くことができますが、精度は失われます。

小数のある数値型には、その精度の範囲内にある整数を置くことができます。例を挙げます。ij> insert into mytable (decimal_column) VALUES (55555555556666666666); ERROR X0Y21: The number '55555555556666666666' is outside the range of the target DECIMAL/NUMERIC(5,2) datatype.

大きな記憶領域を占める整数の値を、小さな記憶領域に代入するとき、その値が小さな記憶領域では記録できないとき、エラーとなります。以下に例を挙げます。INSERT INTO mytable (int_column) values 2147483648; ERROR 22003: The resulting value is outside the range for the data type INTEGER.

NUMERICの値から小数以下を取り除く場合、は切捨てを行います。