web-dev-qa-db-fra.com

Comment puis-je convertir une chaîne en double précision dans PostgreSQL?

Comment puis-je convertir une chaîne en double précision dans PostgreSQL?

J'ai essayé quelque chose comme:

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

où latitude est une chaîne et latitude2 est un double. Je n'arrive pas à le faire fonctionner.

19
Yazz.com

double n'est pas un type de données postgres:

select cast('324342' as double);
 ERREUR: le type "double" n'existe pas 
 LIGNE 1: sélectionnez la distribution ('324342' comme double); 
 ^ 

mais double precision est:

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

Alors essayez:

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

si vous préférez, vous pouvez utiliser float * à la place, car selon --- (aux documents :

un flotteur sans précision spécifiée signifie une double précision

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

db <> violon --- (ici


*  ou float(n) où 25 <= n <= 53 parce que c'est aussi pris pour signifier double précision