it-swarm-eu.dev

Jak lze převést řetězec na dvojnásobnou přesnost v PostgreSQL?

Jak lze převést řetězec na dvojnásobnou přesnost v PostgreSQL?

Zkusil jsem něco jako:

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

kde zeměpisná šířka je řetězec a zeměpisná šířka2 je dvojnásobek. Nemůžu to nechat fungovat.

19
Yazz.com

double není datový typ postgresu:

select cast('324342' as double);
 CHYBA: typ "double" neexistuje 
 Řádek 1: vyberte obsazení ('324342' jako double); 
 ^ 

ale double precision je:

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

Zkuste to:

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

pokud dáváte přednost, můžete použít float * místo toho, protože podle --- (k dokumentům :

plovák bez přesné specifikace se rozumí dvojitá přesnost

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

db <> housle --- (zde


*  nebo float(n) kde 25 <= n <= 53, protože to je také považováno za dvojitou přesnost