2011-09-09 16 views
27

मेरे पास सारणी (VARCHAR) के रूप में संग्रहीत अक्षांश और देशांतर मान वाली तालिका है जिसे मैं FLOAT (10,6) में परिवर्तित करना चाहता हूं।मैं स्ट्रिंग को mysql में एक फ्लोट में कैसे परिवर्तित कर सकता हूं?

हालांकि CAST() या CONVERT() का उपयोग करके ऐसा करने का एक सीधा तरीका प्रतीत नहीं होता है।

मैं इन कॉलम को आसानी से कैसे परिवर्तित कर सकता हूं? यह एक बार का रूपांतरण है।

उत्तर

46

यह पता चला मैं सिर्फ CAST() विवरण पर DECIMAL याद आ रही थी:

DECIMAL[(M[,D])]

दशमलव डेटा प्रकार के लिए एक मूल्य में बदलता है। वैकल्पिक तर्क एम और डी सटीक निर्दिष्ट करते हैं (एम अंकों की कुल संख्या निर्दिष्ट करता है) और दशमलव मान के पैमाने (डी दशमलव बिंदु के बाद अंकों की संख्या निर्दिष्ट करता है) निर्दिष्ट करता है। दशमलव बिंदु के बाद डिफ़ॉल्ट सटीक दो अंक है।

इस प्रकार, निम्न क्वेरी काम किया:

UPDATE table SET 
latitude = CAST(old_latitude AS DECIMAL(10,6)), 
longitude = CAST(old_longitude AS DECIMAL(10,6)); 
4
mysql> SELECT CAST(4 AS DECIMAL(4,3)); 
+-------------------------+ 
| CAST(4 AS DECIMAL(4,3)) | 
+-------------------------+ 
|     4.000 | 
+-------------------------+ 
1 row in set (0.00 sec) 

mysql> SELECT CAST('4.5s' AS DECIMAL(4,3)); 
+------------------------------+ 
| CAST('4.5s' AS DECIMAL(4,3)) | 
+------------------------------+ 
|      4.500 | 
+------------------------------+ 
1 row in set (0.00 sec) 

mysql> SELECT CAST('a4.5s' AS DECIMAL(4,3)); 
+-------------------------------+ 
| CAST('a4.5s' AS DECIMAL(4,3)) | 
+-------------------------------+ 
|       0.000 | 
+-------------------------------+ 
1 row in set, 1 warning (0.00 sec) 
+2

'CAST' और'() 'जैसे मैंने किया था के बीच एक खाली स्थान नहीं छोड़ें। यह आपको 'त्रुटि कोड: 1064 पर ले जाएगा। आपको अपने SQL वाक्यविन्यास में कोई त्रुटि है – SBF

संबंधित मुद्दे

 संबंधित मुद्दे