Saltar al contenido

¿Cómo puedo convertir un string a un flotador en mysql?

Si hallas algún problema con tu código o proyecto, recuerda probar siempre en un entorno de testing antes aplicar el código al proyecto final.

Solución:

Resulta que solo me faltaba DECIMAL sobre el CAST() descripción:

DECIMAL[(M[,D])]

Convierte un valor al tipo de datos DECIMAL. Los argumentos opcionales M y D especifican la precisión (M especifica el número total de dígitos) y la escala (D especifica el número de dígitos después del punto decimal) del valor decimal. La precisión predeterminada es de dos dígitos después del punto decimal.

Por lo tanto, la siguiente consulta funcionó:

UPDATE table SET
latitude = CAST(old_latitude AS DECIMAL(10,6)),
longitude = CAST(old_longitude AS DECIMAL(10,6));

mysql> SELECT CAST(4 AS DECIMAL(4,3));
+-------------------------+
| CAST(4 AS DECIMAL(4,3)) |
+-------------------------+
|                   4.000 |
+-------------------------+
1 row in set (0.00 sec)

mysql> SELECT CAST('4.5s' AS DECIMAL(4,3));
+------------------------------+
| CAST('4.5s' AS DECIMAL(4,3)) |
+------------------------------+
|                        4.500 |
+------------------------------+
1 row in set (0.00 sec)

mysql> SELECT CAST('a4.5s' AS DECIMAL(4,3));
+-------------------------------+
| CAST('a4.5s' AS DECIMAL(4,3)) |
+-------------------------------+
|                         0.000 |
+-------------------------------+
1 row in set, 1 warning (0.00 sec)

Esto se convertirá en un valor numérico sin necesidad de convertir o especificar longitud o dígitos:

STRING_COL+0.0

Si su columna es una INTpuede dejar de lado el .0 para evitar decimales:

STRING_COL+0

Al final de la página puedes encontrar las interpretaciones de otros usuarios, tú además tienes el poder dejar el tuyo si lo crees conveniente.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *