¿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.

Yazz.com
fuente
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

Jack Douglas
fuente