जवाबों:
इसे इस्तेमाल करे
SELECT CONVERT(DECIMAL(10,2),YOURCOLUMN)
Str()
फ़ंक्शन का उपयोग करें । यह तीन तर्क (संख्या, प्रदर्शित करने के लिए कुल वर्ण, और प्रदर्शित करने के लिए दशमलव स्थानों की संख्या लेता है
Select Str(12345.6789, 12, 3)
प्रदर्शित करता है: '12345.679' (3 रिक्त स्थान, 5 अंक 12345, एक दशमलव बिंदु, और तीन दशमलव अंक (679)। - यह चक्कर काटता है अगर इसे छोटा करना है, (जब तक कि पूर्णांक आकार कुल के लिए बहुत बड़ा नहीं होता) इसके बजाय तारांकन प्रदर्शित किए जाते हैं।)
दशमलव बिंदु के दाईं ओर कुल 12 वर्णों के लिए।
it rounds if it has to truncate
... जब तक पूर्णांक का हिस्सा कुल आकार के लिए बहुत बड़ा नहीं होता, तब तक इसके बजाय तारांकन प्रदर्शित किए जाते हैं। इसके लिए प्रलेखनSTR
में उल्लेख किया गया है । यहाँ उस पृष्ठ से एक उद्धरण है:STR(1223,2) truncates the result set to **.
आम तौर पर आप मापदंडों के साथ इसे परिभाषित करके SQL में एक संख्या की शुद्धता को परिभाषित कर सकते हैं। अधिकांश मामलों के लिए यह होगा NUMERIC(10,2)
या Decimal(10,2)
- 2 (दशमलव स्थानों) की परिशुद्धता के साथ 10 कुल अंकों के साथ एक संख्या के रूप में एक स्तंभ को परिभाषित करेगा।
स्पष्टता के लिए संपादित
यह मेरे लिए काम करता है और हमेशा दो अंकों का अंश रखता है
23.1 ==> 23.10
25.569 ==> 25.56
1 ==> 1.00
Cast(CONVERT(DECIMAL(10,2),Value1) as nvarchar) AS Value2
यह आज के बच्चे कैसे कर रहे हैं:
DECLARE @test DECIMAL(18,6) = 123.456789
SELECT FORMAT(@test, '##.##')
123.46
DECLARE @test DECIMAL(18,6) = 0.456789
तो SELECT FORMAT(@test, '##.##')
रिटर्न: .46
आप इसे अग्रणी शून्य दिखाने के लिए कैसे प्राप्त करें 0.46
:?
इसे इस्तेमाल करे:
declare @MyFloatVal float;
set @MyFloatVal=(select convert(decimal(10, 2), 10.254000))
select @MyFloatVal
Convert(decimal(18,2),r.AdditionAmount) as AdditionAmount
उस मान को गुणा करें जिसे आप सम्मिलित करना चाहते हैं (उदा। 2.99) 100 से
फिर परिणाम को 100 तक जोड़कर ।01 को अंत तक जोड़ें:
299.01/100
यह दशमलव के बाद 2 मानों के साथ कुल 10 अंकों की अनुमति देगा। इसका अर्थ है कि यह दशमलव के 8 अंक और 2 के बाद दशमलव से पहले मान को समायोजित कर सकता है।
मान्य करने के लिए, निम्नलिखित क्वेरी में मान डालें।
DECLARE vtest number(10,2);
BEGIN
SELECT 10.008 INTO vtest FROM dual;
dbms_output.put_line(vtest);
END;