fra S .l Server 2012 kan du formatere numeriske typer ved hjælp af funktionen t-s .l FORMAT(). Denne funktion accepterer tre argumenter; nummeret, formatet og et valgfrit “kultur” argument.

formatet leveres som en formatstreng. En formatstreng definerer, hvordan output skal formateres.

Her er et eksempel:

SELECT FORMAT(1, 'N');

Resultat:

1.00

I dette tilfælde har jeg brugt N som det andet argument., Dette er standard numerisk format angivelse for nummer. Denne særlige formatspecifikation (N) resulterer i, at output formateres med integral-og decimalcifre, gruppeseparatorer og en decimalseparator med valgfrit negativt tegn. Dette argument er case-ufølsomt, så enten N eller n er fint.,

Decimaler

Her er et andet eksempel, denne gang ved hjælp af N1 for at angive, at vi kun ønsker én decimal:

SELECT FORMAT(1, 'N1');

Resultat:

1.0

Men du kan også øge antallet af decimaler for:

SELECT FORMAT(1, 'N7');

Resultat:

1.0000000

I disse eksempler 1 og 7 er kendt som præcision beregnere.

Præcisionsspecifikationer er valgfrie., De kan være en værdi fra 0 til 99, som angiver nøjagtigheden af resultatet. Hvordan det virker afhænger af formatet specifikeren bliver brugt. For nogle format beregnere, vil det angive det samlede antal cifre i resultatet, for andre vil det angive antallet af decimaler. I andre tilfælde vil det blive ignoreret helt. Se den fulde liste over standard numerisk Format beregnere for at se, hvordan præcision beregnere påvirker output fra hver format specifier.

procent

følgende eksempler brugerP argument, som formaterer tallet som en procentværdi., Det multiplicerer tallet med 100 og tilføjer derefter et lokaliseret procenttegn.

SELECT FORMAT(1, 'P') AS 'Example 1', FORMAT(.375, 'P') AS 'Example 2', FORMAT(.0375, 'P', 'tr-tr') AS 'Example 3';

Resultat:

Example 1 Example 2 Example 3--------- --------- ---------100.00 % 37.50 % %3,75 

Bemærk, at “Eksempel 3” indeholder et tredje argument, der angiver den kultur, som skal bruges i produktionen. I dette tilfælde bruger jeg tr-tr til Tyrkisk. Dette resulterer i procent tegn bliver prepended til antallet (i stedet for vedlagt, ligesom de andre). Det resulterer også i, at et komma bruges som decimalseparator.

Hvis du ikke angiver argumentet “kultur”, bruges sproget for den aktuelle session.,som du måske forestiller dig, kan du få helt forskellige resultater afhængigt af dit nuværende sprog eller værdien af ethvert “kultur” argument. Se, hvordan sprogindstillinger kan påvirke dine FORMAT() resultater for flere eksempler.

valuta

Du kan brugeC til at returnere en valuta værdi.

SELECT FORMAT(1, 'C');

Resultat:

$1.00

Du kan også tilføje i den landestandard, som en tredje 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., For at gøre dette, skal du bruge X argument:

SELECT FORMAT(10, 'X');

Resultat:

A

Her er et andet eksempel, denne gang med et større antal:

SELECT FORMAT(7145, 'X');

Resultat:

1BE9

Brugerdefineret Format

Du kan også oprette din egen brugerdefinerede format ved hjælp af en brugerdefineret numerisk format-streng. Dette består af en række brugerdefinerede numeriske format beregnere, der giver et mønster for dit nummer.,

Det er lettest forklares med et eksempel:

SELECT FORMAT(123456789, '##-###-####');

Resultat:

12-345-6789

I dette tilfælde, jeg bruger den ciffer pladsholder (#). Den cifrede pladsholder giver mig mulighed for at angive et format for nummeret ved hjælp af symbolet # som pladsholder for hvert nummer.

Kommaer

et Andet eksempel:

SELECT FORMAT(123456789, '#,#');

Resultat:

123,456,789

Førende Nuller

en Anden brugerdefineret numerisk format specifier er nul (0)., Du kan bruge dette til at pad et tal med et foranstillet nul:

SELECT FORMAT(7, '000') AS 'Example 1', FORMAT(123, '0000') AS 'Example 2', FORMAT(123, '00000') AS 'Example 3';

Resultat:

Example 1 Example 2 Example 3--------- --------- ---------007 0123 00123 

Du kan også bruge det til at fjerne nuller:

SELECT FORMAT(0123, '000') AS 'Example 1', FORMAT(0123, '0000') AS 'Example 2', FORMAT(000123, '00000') AS 'Example 3';

Resultat:

Example 1 Example 2 Example 3--------- --------- ---------123 0123 00123 

Numerisk Format Beregnere Reference

De følgende artikler indeholder alle de numeriske format beregnere, du kan bruge med FORMAT() funktion, sammen med T-SQL eksempler.,

  • Standard Numerisk Format Strings
  • Brugerdefineret Numerisk Format Strings

det er det samme format, som beregnere, der understøttes af den .NET Framework (FORMAT() funktion er afhængig af den .NET Framework).

dato og tid

FORMAT() funktionen giver dig også mulighed for at formatere dato og tid.

dato og tid har et separat sæt formatspecifikationer:

  • standard Datoformatstrenge
  • brugerdefinerede Datoformatstrenge og Tidsformatstrenge

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *