vanaf SQL Server 2012 kunt u numerieke typen opmaken met de functie T-SQL FORMAT()
. Deze functie accepteert drie argumenten; het getal, het formaat en een optioneel “cultuur” argument.
het formaat wordt geleverd als een format string. Een format string definieert hoe de uitvoer moet worden geformatteerd.
Hier is een voorbeeld:
SELECT FORMAT(1, 'N');
resultaat:
1.00
in dit geval gebruikte ik N
als het tweede argument., Dit is de standaard numeriek formaat specifier Voor nummer. Deze specifieke opmaakspecificatie (N
) resulteert in het opmaken van de uitvoer met integrale en decimale cijfers, groepsscheidingstekens en een decimaal scheidingsteken met optioneel negatief teken. Dit argument is hoofdletterongevoelig, dus ofwel N
of n
is prima.,
Decimalen
Hier is een ander voorbeeld, deze keer met het gebruik van N1
om aan te geven dat we willen nog maar één decimaal:
SELECT FORMAT(1, 'N1');
Uitslag:
1.0
Maar u kunt ook het verhogen van het aantal decimale plaatsen ook:
SELECT FORMAT(1, 'N7');
Uitslag:
1.0000000
In deze voorbeelden, de 1
en 7
staan bekend als precisie en voorschrijvers.
Precisiespecificaties zijn optioneel., Ze kunnen een waarde zijn van 0 tot 99, die de precisie van het resultaat specificeert. Hoe het werkt hangt af van het formaat dat wordt gebruikt. Voor sommige formaatspecificaties specificeert het het totale aantal cijfers in het resultaat, voor anderen specificeert het het aantal decimalen. In andere gevallen zal het volledig genegeerd worden. Bekijk de volledige lijst met standaard numerieke Formaatspecificaties om te zien hoe precisiespecificaties de uitvoer van elke formaatspecificatie beïnvloeden.
percentage
de volgende voorbeelden gebruiken het argument P
, dat het getal formatteert als een procentuele waarde., Het vermenigvuldigt het getal met 100, voegt dan een gelokaliseerd procentteken toe.
SELECT FORMAT(1, 'P') AS 'Example 1', FORMAT(.375, 'P') AS 'Example 2', FORMAT(.0375, 'P', 'tr-tr') AS 'Example 3';
resultaat:
Example 1 Example 2 Example 3--------- --------- ---------100.00 % 37.50 % %3,75
merk op dat” Voorbeeld 3 ” een derde argument bevat, dat de cultuur specificeert die in de uitvoer moet worden gebruikt. In dit geval gebruik ik tr-tr
Voor Turks. Dit resulteert in het percentage teken wordt toegevoegd aan het nummer (in plaats van toegevoegd, zoals de anderen). Het resulteert ook in een komma wordt gebruikt als het decimale scheidingsteken.
Als u het argument “cultuur” niet opgeeft, wordt de taal van de huidige sessie gebruikt.,
zoals u zich kunt voorstellen, kunt u heel andere resultaten krijgen, afhankelijk van uw huidige taal of de waarde van een “cultuur” argument. Zie hoe taalinstellingen uw FORMAT() resultaten kunnen beïnvloeden voor meer voorbeelden.
valuta
u kunt C
gebruiken om een valutawaarde te retourneren.
SELECT FORMAT(1, 'C');
resultaat:
$1.00
u kunt ook toevoegen in de landinstelling als derde parameter.,
Here are some examples:
SELECT FORMAT(1, 'C', 'fr-FR') AS France, FORMAT(1, 'C', 'th-TH') AS Thailand, FORMAT(1, 'C', 'ja-JP') AS Japan;
Result:
France Thailand Japan------ -------- -----1,00 € ฿1.00 ¥1
Exponential (Scientific)
You can use E
to specify exponential notation.
SELECT FORMAT(1234.56789, 'E');
Result:
1.234568E+003
Hexadecimal
You can even format a number as hexadecimal., Om dit te doen, gebruik de X
optie:
SELECT FORMAT(10, 'X');
Uitslag:
A
Hier is een ander voorbeeld, deze keer met een groter nummer:
SELECT FORMAT(7145, 'X');
Resultaat:
1BE9
Aangepaste Indeling
U kunt ook uw eigen aangepaste indeling met behulp van een aangepaste getal notatie string. Dit bestaat uit een reeks aangepaste numerieke formaat specifiers die een patroon voor uw nummer.,
Dit is gemakkelijker te verklaren met een voorbeeld:
SELECT FORMAT(123456789, '##-###-####');
resultaat:
12-345-6789
In dit geval gebruik ik de plaatshouder van het cijfer (#
). De plaatshouder van het cijfer staat me toe om een formaat voor het getal te specificeren, met behulp van het #
symbool als plaatshouder voor elk getal.
komma ‘ s
een ander voorbeeld:
SELECT FORMAT(123456789, '#,#');
resultaat:
123,456,789
voorloopnullen
een andere aangepaste numerieke formaatspecificatie is nul (0
)., U kunt gebruik maken van dit pad een getal met nullen:
SELECT FORMAT(7, '000') AS 'Example 1', FORMAT(123, '0000') AS 'Example 2', FORMAT(123, '00000') AS 'Example 3';
Uitslag:
Example 1 Example 2 Example 3--------- --------- ---------007 0123 00123
U kunt het ook gebruiken voor het verwijderen van nullen:
SELECT FORMAT(0123, '000') AS 'Example 1', FORMAT(0123, '0000') AS 'Example 2', FORMAT(000123, '00000') AS 'Example 3';
Resultaat:
Example 1 Example 2 Example 3--------- --------- ---------123 0123 00123
Numeriek Formaat Specificatie Referentie
De volgende artikelen bevatten alle numerieke formaat specificatie die u kunt gebruiken met de FORMAT()
functie, samen met T-SQL voorbeelden.,
- standaard numerieke Format Strings
- aangepaste numerieke Format Strings
Dit zijn dezelfde formatspecifiers die worden ondersteund door het.NET Framework (de functie FORMAT()
vertrouwt op het. NET Framework).
datum en tijd
met de functie FORMAT()
kunt u ook datum en tijd opmaken.
datum en tijd heeft een aparte set opmaakspecificaties:
- standaard tekenreeksen voor datum en tijd
- aangepaste tekenreeksen voor datum en tijd