Bagaimana saya bisa mengubah string menjadi presisi ganda di PostgreSQL? [Tutup]

19

Bagaimana saya bisa mengubah string menjadi presisi ganda di PostgreSQL?

Saya mencoba sesuatu seperti:

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

di mana garis lintang adalah string dan garis lintang2 adalah garis ganda. Aku tidak bisa membuatnya bekerja.

Yazz.com
sumber
6
" tidak bisa berfungsi " bukan pesan kesalahan Postgres yang valid. Silakan kirim kesalahan lengkap (atau jelaskan apa yang sebenarnya tidak berfungsi)
a_horse_with_no_name
Eww ini adalah pertanyaan yang sangat buruk karena alasan lain karena Anda bertanya tentang Longitude dan Latitude dan mereka seharusnya tidak disimpan sebagai dobel.
Evan Carroll

Jawaban:

42

double bukan tipe data postgres:

select cast('324342' as double);
GALAT: ketik "ganda" tidak ada
LINE 1: pilih pemain ('324342' sebagai ganda);
                                ^

tetapi double precisionadalah:

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

Jadi cobalah:

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

jika Anda suka, Anda dapat menggunakan float* sebagai gantinya, karena menurut dokumen :

mengambang tanpa presisi yang ditentukan diambil berarti presisi ganda

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

db <> biola di sini


* atau di float(n)mana 25 <= n <= 53 karena itu juga berarti presisi ganda

Jack Douglas
sumber