Como posso converter uma string para uma precisão dupla no PostgreSQL? [fechadas]

19

Como posso converter uma string para uma precisão dupla no PostgreSQL?

Eu tentei algo como:

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

onde latitude é uma string e latitude2 é um dobro. Eu simplesmente não consigo fazê-lo funcionar.

Yazz.com
fonte
6
" não é possível fazê-lo funcionar " não é uma mensagem de erro válida do Postgres. Por favor, poste o erro completo (ou descreva o que exatamente não está funcionando)
a_horse_with_no_name 11/11/11
Eh, essa é uma pergunta muito ruim por outro motivo, porque você está perguntando sobre Longitude e Latitude e elas não devem ser armazenadas como duplicadas de qualquer maneira.
Evan Carroll

Respostas:

42

double não é um tipo de dados postgres:

select cast('324342' as double);
ERRO: o tipo "double" não existe
LINHA 1: selecione o elenco ('324342' como duplo);
                                ^

mas double precisioné:

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

Então tente:

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

se preferir, você pode usar float* em vez disso, porque de acordo com os documentos :

flutuar sem precisão especificada é entendido como precisão dupla

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

db <> mexer aqui


* ou float(n)onde 25 <= n <= 53, porque isso também significa dupla precisão

Jack Douglas
fonte