it-swarm.dev

Jak przekonwertować ciąg znaków na podwójną precyzję w PostgreSQL?

Jak przekonwertować ciąg znaków na podwójną precyzję w PostgreSQL?

Próbowałem czegoś takiego:

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

gdzie szerokość geograficzna jest łańcuchem, a szerokość geograficzna 2 jest podwójną. Po prostu nie mogę go uruchomić.

19
Yazz.com

double nie jest typem danych postgres:

select cast('324342' as double);
 BŁĄD: typ „double” nie istnieje 
 LINIA 1: wybierz obsadę („324342” jako double); 
 ^ 

ale double precision to:

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

Więc spróbuj:

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

jeśli wolisz, możesz użyć float * zamiast tego, ponieważ zgodnie z --- (do dokumentów :

liczba zmiennoprzecinkowa bez określonej precyzji oznacza podwójną precyzję

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

db <> skrzypce --- (tutaj


*  lub float(n) gdzie 25 <= n <= 53, ponieważ jest to również rozumiane jako podwójna precyzja