począwszy od SQL Server 2012, Możesz formatować typy liczbowe za pomocą funkcji T-SQL FORMAT(). Ta funkcja przyjmuje trzy argumenty: liczbę, format i opcjonalny argument „kultura”.

format jest dostarczany jako ciąg formatujący. Łańcuch formatowania określa sposób sformatowania wyjścia.

oto przykład:

SELECT FORMAT(1, 'N');

wynik:

1.00

w tym przypadku użyłem N jako drugiego argumentu., Jest to standardowy format numeryczny dla Number. Ten konkretny specyfikator formatu (N) powoduje, że wyjście jest sformatowane z cyframi całkowitymi i dziesiętnymi, separatorami grup i separatorem dziesiętnym z opcjonalnym znakiem ujemnym. Ten argument jest niewrażliwy na wielkość liter, więc albo Nalbon jest w porządku.,

miejsca dziesiętne

oto kolejny przykład, tym razem za pomocą N1 aby określić, że chcemy tylko jedno miejsce dziesiętne:

SELECT FORMAT(1, 'N1');

wynik:

1.0

ale możesz również zwiększyć liczba miejsc dziesiętnych również:

SELECT FORMAT(1, 'N7');

wynik:

1.0000000

w tych przykładach 1 I 7 są znane jako precyzja / align = „left” /

precyzja jest opcjonalna., Mogą mieć wartość od 0 do 99, która określa dokładność wyniku. To, jak to działa, zależy od używanego formatu. Dla niektórych specyfikatorów formatu będzie określać całkowitą liczbę cyfr w wyniku, dla innych będzie określać liczbę miejsc po przecinku. W innych przypadkach zostanie całkowicie zignorowany. Zapoznaj się z pełną listą standardowych określeń formatów liczbowych, aby zobaczyć, w jaki sposób określniki precyzji wpływają na dane wyjściowe każdego ze specyfikatorów formatu.

procent

poniższe przykłady używają argumentuP, który Formatuje liczbę jako wartość procentową., Mnoży liczbę przez 100, a następnie dodaje lokalny znak procentowy.

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

wynik:

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

zauważ, że „Przykład 3” zawiera trzeci argument, który określa kulturę, która ma być użyta na wyjściu. W tym przypadku używam tr-tr dla języka tureckiego. Powoduje to, że znak procentowy jest dołączany do liczby (zamiast dołączany, jak inne). Powoduje to również użycie przecinka jako separatora dziesiętnego.

Jeśli nie podasz argumentu „kultura”, używany jest język bieżącej sesji.,

jak możesz sobie wyobrazić, możesz uzyskać całkiem różne wyniki w zależności od Twojego obecnego języka lub wartości dowolnego argumentu „Kultury”. Zobacz, jak Ustawienia języka mogą wpływać na wyniki metody FORMAT (), aby uzyskać więcej przykładów.

Waluta

możesz użyć C aby zwrócić wartość waluty.

SELECT FORMAT(1, 'C');

wynik:

$1.00

Możesz również dodać w ustawieniach regionalnych jako trzeci 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., Aby to zrobić, użyj X argument:

SELECT FORMAT(10, 'X');

wynik:

A

oto kolejny przykład, tym razem z większą liczbą:

SELECT FORMAT(7145, 'X');

wynik:

1BE9

niestandardowy format

Możesz również utworzyć własny niestandardowy format za pomocą niestandardowego ciągu liczbowego. Składa się z serii niestandardowych specyfikacji formatu numerycznego, które zapewniają wzór dla numeru.,

jest to łatwiejsze do wyjaśnienia na przykładzie:

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

wynik:

12-345-6789

w tym przypadku używam symbolu zastępczego (#). Symbol zastępczy cyfry pozwala mi określić format liczby, używając symbolu # jako symbolu zastępczego dla każdej liczby.

przecinki

inny przykład:

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

wynik:

123,456,789

wiodące zera

innym niestandardowym określnikiem formatu liczbowego jest zero (0)., Możesz użyć tego do wstawiania numeru z wiodącymi zerami:

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

wynik:

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

Możesz również użyć go do usuwania zer:

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

wynik:

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

numeric format specifiiers reference

poniższe artykuły zawierają wszystkie numeric format specifiiers you can use with the FORMAT() function, wraz z przykładami T-SQL.,

  • Standardowe ciągi formatów numerycznych
  • niestandardowe ciągi formatów numerycznych

są to te same typy formatów, które są obsługiwane przez.Net Framework (funkcjaFORMAT() opiera się na. Net Framework).

Data i czas

funkcjaFORMAT() umożliwia również formatowanie daty i czasu.

Data i czas mają oddzielny zestaw specyfikacji formatów:

  • Standardowe ciągi formatów daty i czasu
  • niestandardowe ciągi formatów daty i czasu

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *