GOOGLE ADS

sábado, 16 de abril de 2022

SSMA para MySQL: los valores del tipo de datos flotantes son diferentes entre MySQL y SQL Server

Estoy usando SSMA para la herramienta MySQL para migrar datos de MySQL a SQL Server 2016. Después de completar los datos de migración. El valor de campo del tipo flotante de la tabla MySQL es diferente del campo de SQL Server. En la tabla de MySQL, el valor es 90177104, pero en la tabla de SQL Server, el valor es 90177100.

¿Alguien puede explicar por qué los valores son diferentes? ¿Es un error de SSMA? Si es así, ¿hay alguna solución para que los dos valores sean iguales? ¡Gracias!

Esquema de tabla MySQL:

create table test
(
id int auto_increment
primary key,
value float null
);
# insert data.
insert into test(value) values(90177104);

esquema de tabla de SQL Server:

create table test
(
id int identity
constraint table_name_pk
primary key nonclustered,
value float default NULL
)
# insert the same data.
insert into test(value) values(90177104);


Solución del problema

Más una exhibición que una cosa de almacenamiento.

drop table if exists t,TEST;
create table t
(
id int auto_increment
primary key,
value float(20,1) null,
val2 float null
);
# insert data.
insert into t(value,VAL2) values(90177104,90177104);
SELECT T.*,CAST(`VALUE` AS DECIMAL),CAST(`VAL2` AS DECIMAL) FROM T;
# id, value, val2, CAST(`VALUE` AS DECIMAL), CAST(`VAL2` AS DECIMAL)
'1', '90177104.0', '90177100', '90177104', '90177104'

No hay comentarios:

Publicar un comentario

Regla de Firestore para acceder a la generación de subcolección Permisos faltantes o insuficientes

Tengo problemas con las reglas de Firestore para permitir el acceso a algunos recursos en una subcolección. Tengo algunos requests document...