PostgreSQL'de bir dizeyi çift kesinlike nasıl dönüştürebilirim? [kapalı]


19

PostgreSQL'de bir dizeyi çift kesinlike nasıl dönüştürebilirim?

Gibi bir şey denedim:

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

burada enlem bir dizedir ve enlem2 bir çifttir. Sadece işe yarayamıyorum.


6
" İşe alamıyorum " geçerli bir Postgres hata mesajı değildir. Lütfen tam hatayı gönderin (veya tam olarak neyin işe
yaramadığını açıklayın

Başka bir nedenden dolayı bu gerçekten kötü bir soru çünkü Boylam ve Enlem'i soruyorsunuz ve yine de çiftler olarak saklanmamalıdırlar.
Evan Carroll

Yanıtlar:


42

double postgres veri türü değil:

select cast('324342' as double);
HATA: "double" türü mevcut değil
LINE 1: kadranı seç ('324342' çift olarak);
                                ^

ama double precision:

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

O zaman dene:

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

tercih ederseniz, bunun yerine float* kullanabilirsiniz , çünkü dokümanlara göre :

hassasiyet belirtilmemiş şamandıra çift hassasiyet anlamına gelir

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

burada keman


* veya float(n)burada 25 <= n <= 53 olduğu için çift kesinlik anlamına da gelir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.