2012-05-14 17 views
6

में मनी वैल्यू में कास्टिंग स्ट्रिंग कास्टिंग क्रमशः संख्यात्मक मूल्य 1000.00 और -1000.00 के प्रारूप में "$ 1,000.00" और "($ 1,000.00)" प्रारूप में एनवीएआरएआरएआर को परिवर्तित करने का एक सरल अंतर्निहित तरीका है?एसक्यूएल सर्वर

मैं या तो SQL सर्वर या SSIS में ऐसा करने का प्रयास कर रहा हूं।

पैसे के लिए कास्टिंग जब नकारात्मक मूल्य कास्ट करने के लिए प्रयास करने से मुझे त्रुटि

"Cannot convert a char value to money. The char value has incorrect syntax.". 

देता है, मैं कोष्ठक की वजह से यह सोचते हैं रहा हूँ।

+3

यदि आपके पास SQL ​​Server 2012 है, तो आप [** 'PARSE' **] (http: // msdn का उपयोग कर सकते हैं .microsoft.com/en-us/लाइब्रेरी/hh213316.aspx) फ़ंक्शन। – mellamokb

उत्तर

11

यह चाल

SELECT '$1,000.00' 
     ,CAST('$1,000.00' AS MONEY) 
     ,CAST(REPLACE(REPLACE('($1,000.00)', '(', '-'), ')','') AS MONEY) 

SQL Fiddle Example

और @ mellamokb के सुझाव के अनुसार करना चाहिए, आप SQL 2012 उपयोग कर रहे हैं, तो आप इस का उपयोग कर सकते हैं:

SELECT PARSE('($1000.00)' AS MONEY) 

SQL Fiddle Example

+1

ओपी में ऋणात्मक मूल्य पर त्रुटि है, सकारात्मक मूल्य नहीं: http://www.sqlfiddle.com/#!3/d41d8/1152 – mellamokb

+2

नकारात्मक –

+0

कूल के समाधान के साथ अद्यतन किया गया। मुझे एहसास नहीं हुआ कि पैसा कोष्ठक के साथ-साथ अल्पविरामों का विश्लेषण करेगा। –

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