počínaje SQL Serverem 2012 můžete formátovat číselné typy pomocí funkce T-SQL FORMAT()
. Tato funkce přijímá tři argumenty; číslo, formát a volitelný argument „kultura“.
formát je dodáván jako formátový řetězec. Formátovací řetězec definuje, jak má být výstup naformátován.
Zde je příklad:
SELECT FORMAT(1, 'N');
Výsledek:
1.00
V tomto případě jsem použil N
jako druhý argument., Toto je standardní specifikátor číselného formátu pro číslo. Tento konkrétní specifikátor formátu (N
) má za následek formátování výstupu pomocí integrálních a desetinných číslic, oddělovačů skupin a desetinného oddělovače s volitelným záporným znaménkem. Tento argument je case-insensitive, takže buď N
nebo n
je v pořádku.,
Desetinná Místa
Zde je další příklad, tentokrát pomocí N1
specifikovat, že chceme jen jedno desetinné místo:
SELECT FORMAT(1, 'N1');
Výsledek:
1.0
Ale můžete také zvýšit počet desetinných míst:
SELECT FORMAT(1, 'N7');
Výsledek:
1.0000000
V těchto příkladech 1
7
jsou známy jako specifikátory přesnost.
přesné specifikátory jsou volitelné., Mohou to být hodnoty od 0 do 99, které specifikují přesnost výsledku. Jak to funguje, závisí na použitém specifikátoru formátu. U některých specifikátorů formátu specifikuje celkový počet číslic ve výsledku, u jiných určí počet desetinných míst. V ostatních případech bude zcela ignorována. Podívejte se na úplný seznam specifikátorů standardního číselného formátu, abyste zjistili, jak přesné specifikátory ovlivňují výstup z každého specifikátoru formátu.
procento
následující příklady používají argument P
, který formátuje číslo jako procentuální hodnotu., Násobí číslo o 100, pak přidá lokalizovaný procentní znak.
SELECT FORMAT(1, 'P') AS 'Example 1', FORMAT(.375, 'P') AS 'Example 2', FORMAT(.0375, 'P', 'tr-tr') AS 'Example 3';
Výsledek:
Example 1 Example 2 Example 3--------- --------- ---------100.00 % 37.50 % %3,75
Všimněte si, že „Příklad 3“ zahrnuje třetí argument, který určuje kulturu, aby být použity ve výstupu. V tomto případě používám tr-tr
pro turečtinu. To má za následek, že znaménko procent je připraveno na číslo (místo připojených, stejně jako ostatní). Výsledkem je také čárka, která se používá jako desetinný oddělovač.
pokud neposkytnete argument „kultura“, použije se jazyk aktuální relace.,
jak si dokážete představit, můžete získat zcela odlišné výsledky v závislosti na vašem aktuálním jazyce nebo hodnotě jakéhokoli argumentu „kultura“. Podívejte se, jak nastavení jazyka může ovlivnit váš formát() výsledky pro více příkladů.
měna
pro vrácení hodnoty měny můžete použít C
.
SELECT FORMAT(1, 'C');
Výsledek:
$1.00
můžete také přidat v prostředí jako třetí parametr.,
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., K tomu, použít X
argumenty:
SELECT FORMAT(10, 'X');
Výsledek:
A
Zde je další příklad, tentokrát s větším počtem:
SELECT FORMAT(7145, 'X');
Výsledek:
1BE9
Vlastní Formát
můžete si také vytvořit vlastní formát pomocí vlastní číselný formát řetězce. To se skládá z řady vlastních číselných specifikátorů formátu, které poskytují vzor pro vaše číslo.,
Toto je jednodušší vysvětlit na příkladu:
SELECT FORMAT(123456789, '##-###-####');
Výsledek:
12-345-6789
V tomto případě jsem použít zástupný znak pro číslici (#
). Zástupný symbol číslice mi umožňuje zadat formát čísla pomocí symbolu#
jako zástupný symbol pro každé číslo.
Čárky
Další příklad:
SELECT FORMAT(123456789, '#,#');
Výsledek:
123,456,789
úvodní Nuly
Další vlastní číselný formát specifikátor je nulový (0
)., Můžete použít tento pad číslo s úvodní nuly:
SELECT FORMAT(7, '000') AS 'Example 1', FORMAT(123, '0000') AS 'Example 2', FORMAT(123, '00000') AS 'Example 3';
Výsledek:
Example 1 Example 2 Example 3--------- --------- ---------007 0123 00123
můžete také použít k odstranění nul:
SELECT FORMAT(0123, '000') AS 'Example 1', FORMAT(0123, '0000') AS 'Example 2', FORMAT(000123, '00000') AS 'Example 3';
Výsledek:
Example 1 Example 2 Example 3--------- --------- ---------123 0123 00123
Číselný Formát Specifikátory Odkaz
následující články obsahují všechny číselném formátu specifikátory, které lze použít s FORMAT()
funkce, spolu s T-SQL příklady.,
- Standardní Číselný Formát Řetězce
- Vlastní Číselný Formát Řetězce
jedná se o stejný formát specifikátory, které jsou podporovány .NET Framework (FORMAT()
funkce spoléhá na .NET Framework).
datum a čas
funkceFORMAT()
také umožňuje formátovat datum a čas.
Datum a čas má samostatný soubor formátu specifikátory:
- Standardní Formát Data a Času Řetězců
- Vlastní Datum a Čas Formát Řetězce