Як я можу перетворити рядок у подвійну точність у PostgreSQL? [зачинено]


19

Як я можу перетворити рядок у подвійну точність у PostgreSQL?

Я спробував щось на кшталт:

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

де широта - це рядок, а широта2 - подвійна. Я просто не можу змусити його працювати.


6
" не вдається змусити його працювати " - неправдиве повідомлення про помилку Postgres. Будь ласка, опублікуйте повну помилку (або опишіть, що саме не працює)
a_horse_with_no_name

Eww - це справді поганий питання з іншої причини, тому що ви запитуєте про Longitude і Latitude, і вони не повинні зберігатись як подвійні.
Еван Керролл

Відповіді:


42

double не є типом даних постгреси:

select cast('324342' as 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 |

db <> скрипка тут


* або float(n)де 25 <= n <= 53, тому що це також означає подвійну точність

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.