Wie schreibt man eine Zahl mit zwei Dezimalstellen für SQL Server?Schreiben Sie eine Zahl mit zwei Dezimalstellen SQL Server
Antwort
Im Allgemeinen können Sie die Genauigkeit einer Zahl in SQL definieren, indem Sie sie mit Parametern definieren. In den meisten Fällen ist dies NUMERIC(10,2)
oder Decimal(10,2)
- definiert eine Spalte als eine Zahl mit 10 Ziffern insgesamt mit einer Genauigkeit von 2 (Dezimalstellen).
Edited für Klarheit
Verwenden Str()
Funktion. Es dauert drei Argumente (die Zahl ist, die Zahl Gesamt Zeichen anzuzeigen, und die Anzahl der Dezimalstellen
Select Str(12345.6789, 12, 3)
Displays angezeigt werden: ‚12345,679‘ (3 Räume, 5 Ziffern 12345, einen Dezimalpunkt und drei dezimale Ziffern (679) - Es wird abgerundet, wenn es abgeschnitten werden muss (sofern der Integer nicht zu groß für die Gesamtgröße ist. In diesem Fall werden stattdessen Sternchen angezeigt.)
für insgesamt 12 Zeichen mit 3 bis das Recht auf Dezimalpunkt
'es rundet, wenn es abgeschnitten werden muss ... ... es sei denn, der ganzzahlige Teil ist zu groß für die Summe Größe, in diesem Fall werden stattdessen Sternchen angezeigt. Dies wird in der [Dokumentation für STR] (http://msdn.microsoft.com/en-us/library/ms189527.aspx) erwähnt. Hier ist ein Zitat von dieser Seite: 'STR (1223,2) schneidet die Ergebnismenge auf **.' –
versuchen Sie dies
SELECT CONVERT(DECIMAL(10,2),YOURCOLUMN)
Diese Arbeit für mich und hält immer zwei Ziffern Fraktionen
23,1 ==> 23,10
25,569 ==> 25,56
1 ==> 1,00
Cast(CONVERT(DECIMAL(10,2),Value1) as nvarchar) AS Value2
versuchen Sie die Funktion STR() von Charles Bretana oben. Es funktioniert wie Ihre Formel, wird aber Ihr 25.569-Beispiel runden. – JerryOL
Hallo hier, ich habe eine Abfrage wie diese "SELECT Gametype, GameSubType, Noofplayers, Playerrank, Startzeit, Endzeit, CONVERT (Dezimal (20,10), InitialBuy), Smallblind, Bigblind, Winamt ,, Lossamt, Pokerraum, Raumname, Datum, sessiontype, sessionid FROM 'pokerastic_session' WHERE sessiontype = 1 und dateval BETWEEN '2013-05-01' und '2013-06-05'" aber durch den Fehler könntest du mir bitte helfen, Dezimal mit zwei Ziffern zu konvertieren – dineshprasanna
Dies ermöglicht insgesamt 10 Ziffern mit 2 Nachkommastellen. Es bedeutet, dass es den Wert vor dem Dezimalstellen bis zu 8 Ziffern und 2 nach der Dezimalstelle aufnehmen kann.
Geben Sie zur Überprüfung den Wert in die folgende Abfrage ein.
DECLARE vtest number(10,2);
BEGIN
SELECT 10.008 INTO vtest FROM dual;
dbms_output.put_line(vtest);
END;
Das wird funktionieren auf Oracle, aber nicht auf Microsoft SQL Server. –
Multiplizieren Sie den Wert, den Sie einfügen möchten (ex 2.99.) Von 100
Dann 100 des Ergebnisses der Division einfügen .01 bis zum Ende hinzufügen:
299.01/100
Wenn Sie ist fein mit Rundung die Zahl, anstatt es zu Verkürzen, es ist dann nur:
ROUND(column_name,decimals)
Wenn Sie nur zwei Dezimalstellen benötigen, ist der einfachste Weg.
SELECT CAST(12 AS DECIMAL(16,2))
ODER
SELECT CAST('12' AS DECIMAL(16,2))
Ausgabe
12.00
Try this:
declare @MyFloatVal float;
set @MyFloatVal=(select convert(decimal(10, 2), 10.254000))
select @MyFloatVal
Convert(decimal(18,2),r.AdditionAmount) as AdditionAmount
Dies ist, wie die Kinder es heute tun:
DECLARE- @Test DECIMAL (18,6) = 123,456789
SELECT FORMAT (@Test '##. ##') 123,46
es auch als DECIMAL erklärt werden kann (10, 2). – jrcs3
@ jrcs3 - Guter Fang. – AAA
Das ist aus verschiedenen Gründen falsch. Es ist keine Nummer, es ist numerisch oder dezimal. Sie sagen, dass numerisch (10,2) 10 Stellen vor dem Komma erlaubt, was auch falsch ist. numerisch (10,2) erlaubt 10 Ziffern mit 2 Nachkommastellen. Range = -99999999.99 bis 99999999.99 –