Come posso convertire una stringa in una doppia precisione in PostgreSQL? [chiuso]


19

Come posso convertire una stringa in una doppia precisione in PostgreSQL?

Ho provato qualcosa del tipo:

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

dove latitude è una stringa e latitude2 è un doppio. Non riesco proprio a farlo funzionare.


6
" impossibile farlo funzionare " non è un messaggio di errore Postgres valido.
Pubblica

Eww questa è una domanda davvero brutta per un altro motivo perché stai chiedendo di Longitudine e Latitudine e non dovrebbero comunque essere memorizzati come doppi.
Evan Carroll,

Risposte:


42

double non è un tipo di dati postgres:

select cast('324342' as double);
ERRORE: il tipo "double" non esiste
LINEA 1: seleziona cast ('324342' come doppio);
                                ^

ma double precisionè:

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

Allora prova:

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

se preferisci, puoi usare float* invece, perché secondo i documenti :

float senza precisione specificata viene considerato come doppia precisione

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

db <> violino qui


* o float(n)dove 25 <= n <= 53 perché ciò significa anche doppia precisione

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.