मेरे पास SQL सर्वर में एक पैसा डेटा प्रकार है। मैं अपनी क्वेरी में 0.00 से 0 को कैसे सुधारूं?मैं SQL सर्वर में एक डेटा डेटाटाइप से कैसे परिवर्तित करूं?
उत्तर
इसे आपकी मदद करने के लिए इसे कास्टिंग करेगा? पैसा दशमलव स्थानों के लिए है ...
DECLARE @test AS money
SET @test = 3
SELECT CAST(@test AS int), @test
हाय टीना, अब मुझे अपना अपेक्षित आउटपुट मिला है। बहुत अच्छा धन्यवाद .. :-) –
सबसे पहले, आपको पैसे डेटाटाइप का कभी भी उपयोग नहीं करना चाहिए। यदि आप कोई गणना करते हैं तो आपको संक्षिप्त परिणाम मिलेंगे। निम्नलिखित चला कर देख सकते मैं क्या मतलब
DECLARE
@mon1 MONEY,
@mon2 MONEY,
@mon3 MONEY,
@mon4 MONEY,
@num1 DECIMAL(19,4),
@num2 DECIMAL(19,4),
@num3 DECIMAL(19,4),
@num4 DECIMAL(19,4)
SELECT
@mon1 = 100, @mon2 = 339, @mon3 = 10000,
@num1 = 100, @num2 = 339, @num3 = 10000
SET @mon4 = @mon1/@mon2*@mon3
SET @num4 = @num1/@num2*@num3
SELECT @mon4 AS moneyresult,
@num4 AS numericresult
आउटपुट: 2949,0000 2949,8525
अब अपने प्रश्न (यह एक छोटे अस्पष्ट था), पैसा डेटाप्रकार हमेशा दशमलव बिंदु के बाद दो स्थानों पर है जवाब देने के लिए। यदि आप आंशिक भाग नहीं चाहते हैं या int में कनवर्ट नहीं करते हैं तो पूर्णांक डेटाटाइप का उपयोग करें।
शायद आप दशमलव या न्यूमेरिक डेटाटाइप का उपयोग करना चाहते हैं?
माइक्रोसॉफ्ट डायनेमिक्स पैसे डेटा प्रकार का उपयोग करता है। मैंने आज देखा। –
यह वास्तव में कितना मान्य है कि यह वास्तव में $ 450.50 * $ 32.76 करना चाहता है, मैं किसी भी समय सोचने के लिए यहां बैठ गया था, मैं वास्तव में एक साथ कई धन मूल्यों को एक साथ करना चाहता हूं, या उन्हें विभाजित करना चाहता हूं। मैंने आपके उदाहरण एसक्यूएल का इस्तेमाल किया और */का उपयोग करने के लिए + - और यहां तक कि उन्हें * और/और प्रत्येक मिलान के मानों को भी लपेट लिया। –
इस उत्तर पर विस्तृत टिप्पणियों के लिए, [यह उत्तर] देखें (http://stackoverflow.com/questions/582797/should-you-choose-the-money-or-decimalx-y-datatypes-in-sql- सर्वर) –
यह मेरे लिए एक फॉर्मेटिंग मुद्दा जैसा दिखता है।
जहां तक SQL सर्वर का मनी प्रकार संबंधित है 0 == 0.00
यदि आप 0 सी # में प्रदर्शित करने की कोशिश कर रहे हैं तो 0.00 आपको इसे एक स्ट्रिंग में परिवर्तित करना चाहिए, और इसे इच्छित रूप में प्रारूपित करना चाहिए। (या इसे छोटा कर देते।)
सामान्य पैसे रूपांतरण व्यक्ति पैसे को सुरक्षित करेगा:
SELECT convert(varchar(30), moneyfield, 1)
पिछले पैरामीटर का फैसला करता है क्या उत्पादन प्रारूप की तरह दिखता है:
0 (डिफ़ॉल्ट) कोई अल्पविराम के लिए हर तीन अंक दशमलव बिंदु के बाएं, और दशमलव बिंदु के दाईं ओर दो अंक; उदाहरण के लिए, 4235.98।
1 दशमलव बिंदु के बाईं ओर प्रत्येक तीन अंक कम करता है, और दशमलव बिंदु के दाईं ओर दो अंक; उदाहरण के लिए, 3,510.9 2।
2 दशमलव बिंदु के बाईं ओर प्रत्येक तीन अंक नहीं, और दशमलव बिंदु के दाईं ओर चार अंक; उदाहरण के लिए, 4235.98 9 1।
आप पैसे काटना, और पाउंड में गिनती, आप पास पाउंड करने के लिए राउंडिंग उपयोग कर सकते हैं चाहते हैं, सबसे कम पूरे पाउंड, या छत से फर्श पाउंड पूर्णांक बनाना:
SELECT convert(int, round(moneyfield, 0))
SELECT convert(int, floor(moneyfield))
SELECT convert(int, ceiling(moneyfield))
यह काम करेगा यदि आप सभी पैनी मूल्यों को त्यागना चाहते हैं, न कि जब यह 0.00 है। इसके लिए मेरा जवाब देखें। –
ऐसा लगता है पैसे डेटाटाइप की अंतर्निहित सीमाओं के बावजूद, यदि आप पहले से ही इसका उपयोग कर रहे हैं (या इसे मेरे पास विरासत में मिला है) तो आपके प्रश्न का उत्तर है, डेसिमल का उपयोग करें।
आप या तो इस्तेमाल कर सकते हैं
SELECT PARSENAME('$'+ Convert(varchar,Convert(money,@MoneyValue),1),2)
या
SELECT CurrencyNoDecimals = '$'+ LEFT(CONVERT(varchar, @MoneyValue,1),
LEN (CONVERT(varchar, @MoneyValue,1)) - 2)
आप इस तरह की कोशिश कर सकते हैं:
SELECT PARSENAME('$'+ Convert(varchar,Convert(money,@MoneyValue),1),2)
मैं इस approach प्रत्यक्ष और उपयोगी पाया।
CONVERT (VARCHAR (10) परिवर्तित (पैसे, FIELDNAME)) मूल्य
के रूप में मैं भी इस मुद्दे था, और उस पर थोड़ी देर के लिए ऊपर फिसल गया था। मैं 0.00 को 0 के रूप में प्रदर्शित करना चाहता था और अन्यथा दशमलव बिंदु रखना चाहता था। निम्नलिखित काम नहीं किया:
CASE WHEN Amount= 0 THEN CONVERT(VARCHAR(30), Amount, 1) ELSE Amount END
क्योंकि परिणामी कॉलम को एक पैसा कॉलम होना पड़ा था। यह हल करने के लिए निम्नलिखित
CASE WHEN Amount= 0 THEN CONVERT(VARCHAR(30), '0', 1) ELSE CONVERT (VARCHAR(30), Amount, 1) END
यह मायने रखता काम किया क्योंकि मेरी अंतिम गंतव्य स्तंभ एक VARCHAR (30) था, और उस स्तंभ के उपभोक्ताओं बाहर त्रुटि होगा अगर एक राशि '0' के बजाय था '0.00'।
- 1. SQL सर्वर XML डेटाटाइप .NET में अनुवाद करता है और मैं इसे XmlDocument में कैसे परिवर्तित करूं?
- 2. मैं SQL सर्वर में एक SQL डेटा फ़ाइल कैसे आयात करूं?
- 3. मैं SQL सर्वर पर आत्मनिरीक्षण कैसे करूं?
- 4. मैं संग्रहीत misencoded डेटा कैसे परिवर्तित करूं?
- 5. मैं पर्ल से SQL सर्वर से कैसे कनेक्ट करूं?
- 6. मैं SQL सर्वर मेमोरी से SqlDependency को कैसे साफ़ करूं?
- 7. SQL सर्वर कैसे नल बिट डेटाटाइप को संकुचित करता है?
- 8. मैं SQL सर्वर से डेटा कैसे निर्यात कर सकता हूं?
- 9. मैं एक SQL सर्वर डेटाबेस
- 10. मैं लिनक्स में एक पर्ल स्क्रिप्ट से SQL सर्वर डेटाबेस का उपयोग कैसे करूं?
- 11. मैं SQL सर्वर तालिका में nth पंक्ति कैसे प्राप्त करूं?
- 12. मैं एक ही तालिका (SQL सर्वर)
- 13. मैं SQL सर्वर 2008 में GUID डेटाटाइप का उपयोग कैसे कर सकता हूं?
- 14. SQL सर्वर
- 15. मैं SQL सर्वर में एक्सेल स्प्रैडशीट कैसे आयात करूं?
- 16. मैं SQL सर्वर में थोड़ा सा कैसे फ़्लिप करूं?
- 17. मैं जावा में एक स्ट्रिंग में इनपुटस्ट्रीम कैसे परिवर्तित करूं?
- 18. लिंक्ड SQL सर्वर डेटा प्रकार परिवर्तित करने DBTYPE_DBTIMESTAMP
- 19. मैं SQL सर्वर रिपोर्टिंग सेवाओं में गैर-तालिका डेटा कैसे प्राप्त करूं?
- 20. मैं SQL सर्वर
- 21. मैं एक शब्दकोश को एक लुकअप में कैसे परिवर्तित करूं?
- 22. मैं उबंटू में एक एसवीएन सर्वर से कैसे कनेक्ट करूं?
- 23. एसएसआईएस 2012 में SQL सर्वर डेटा टूल्स से मैं एक पैकेज कैसे तैनात कर सकता हूं?
- 24. मैं जावा में int से Long में कैसे परिवर्तित करूं?
- 25. एसक्यूएल सर्वर भूगोल डेटाटाइप लाइन
- 26. परिवर्तित एसक्यूएल सर्वर varbinary डेटा
- 27. SQL सर्वर
- 28. मैं स्ट्रिंगस्ट्रीम से सी ++ में स्ट्रिंग में कैसे परिवर्तित करूं?
- 29. SQL सर्वर से MySQL डेटा स्थानांतरण
- 30. मैं SQL सर्वर 2005
अधिक जानकारी प्रदान करें और आपको कुछ जवाब मिल सकते हैं। –