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.