Как я могу преобразовать строку с двойной точностью в PostgreSQL? [закрыто]

19

Как я могу преобразовать строку с двойной точностью в PostgreSQL?

Я попробовал что-то вроде:

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

где широта является строкой, а широта2 является двойной. Я просто не могу заставить его работать.

Yazz.com
источник
6
«Не могу заставить его работать » не является допустимым сообщением об ошибке Postgres. Пожалуйста,
опубликуйте
Eww это действительно плохой вопрос по другой причине, потому что вы спрашиваете о долготе и широте, и они не должны храниться как двойные в любом случае.
Эван Кэрролл

Ответы:

42

double не является типом данных postgres:

select cast('324342' as double);
ОШИБКА: тип "double" не существует
ЛИНИЯ 1: выберите приведение ('324342' как двойной);
                                ^

но double precisionэто:

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

Поэтому постарайтесь:

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

если вы предпочитаете, вы можете использовать float* вместо этого, потому что в соответствии с документами :

float без заданной точности считается двойной точностью

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

дБ <> скрипка здесь


* или float(n)где 25 <= n <= 53, потому что это также означает двойную точность

Джек Дуглас
источник