¿Cómo puedo convertir una cadena a una precisión doble en PostgreSQL? [cerrado]


19

¿Cómo puedo convertir una cadena a una precisión doble en PostgreSQL?

Intenté algo como:

update points set latitude2 = cast(latitude as double) ;

donde latitude es una cadena y latitude2 es un doble. Simplemente no puedo hacer que funcione.


66
" No puedo hacer que funcione " no es un mensaje de error válido de Postgres.
Publique

Eww, esta es una pregunta realmente mala por otra razón porque estás preguntando sobre Longitud y Latitud y, de todos modos, no deberían almacenarse como dobles.
Evan Carroll

Respuestas:


42

double no es un tipo de datos postgres:

select cast('324342' as double);
ERROR: el tipo "doble" no existe
LÍNEA 1: seleccione el molde ('324342' como doble);
                                ^

pero double precisiones:

select cast('132342' as double precision);
El | float8 |
El | : ----- |
El | 132342 |

Entonces intenta:

update points set latitude2 = cast(latitude as double precision) ;

si lo prefiere, puede usar float* en su lugar, porque de acuerdo con los documentos :

flotante sin precisión especificada se considera doble precisión

select cast('132342' as float);
El | float8 |
El | : ----- |
El | 132342 |

db <> violín aquí


* o float(n)donde 25 <= n <= 53 porque eso también se toma para significar doble precisión

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.