मैं PostgreSQL में एक स्ट्रिंग को डबल परिशुद्धता में कैसे बदल सकता हूं? [बन्द है]


19

मैं PostgreSQL में एक स्ट्रिंग को डबल परिशुद्धता में कैसे बदल सकता हूं?

मैंने कुछ इस तरह की कोशिश की:

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

जहां अक्षांश एक स्ट्रिंग है और अक्षांश 2 एक डबल है। मैं अभी काम करने के लिए नहीं मिल सकता।


6
" यह काम करने के लिए नहीं मिल सकता है " एक वैध पोस्टग्रेज त्रुटि संदेश नहीं है। कृपया पूर्ण त्रुटि पोस्ट करें (या वर्णन करें कि वास्तव में क्या काम नहीं कर रहा है)
a_horse_with_no_name

Eww यह एक और कारण के लिए एक बहुत बुरा सवाल है क्योंकि आप देशांतर और अक्षांश के बारे में पूछ रहे हैं और उन्हें वैसे भी युगल के रूप में संग्रहीत नहीं किया जाना चाहिए।
इवान कैरोल

जवाबों:


42

double डेटा प्रकार पोस्टग्रेज नहीं है:

select cast('324342' as double);
त्रुटि: टाइप "डबल" मौजूद नहीं है
लाइन 1: कास्ट का चयन करें ('324342 डबल के रूप में);
                                ^

लेकिन double precisionहै:

select cast('132342' as double precision);
| फ्लोट 8 |
| : ----- |
| 132342 |

इसलिए कोशिश करें:

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

यदि आप पसंद करते हैं, तो आप डॉक्स के बजाय float* का उपयोग कर सकते हैं :

कोई सटीक निर्दिष्ट के साथ फ्लोट का मतलब डबल परिशुद्धता है

select cast('132342' as float);
| फ्लोट 8 |
| : ----- |
| 132342 |

db <> फिडल यहां


* या float(n)जहां 25 <= n <= 53 क्योंकि वह भी डबल परिशुद्धता के लिए लिया जाता है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.