pornind de la SQL Server 2012, puteți formata tipuri numerice folosind funcția T-SQL FORMAT()
. Această funcție acceptă trei argumente; numărul, formatul și un argument opțional „cultură”.
formatul este furnizat ca un șir de format. Un șir de format definește modul în care ieșirea trebuie formatată.
iata un exemplu:
SELECT FORMAT(1, 'N');
Rezultat:
1.00
În acest caz, am folosit N
ca al doilea argument., Acesta este specificatorul standard de format numeric pentru Număr. Acest specificator de format special (N
) are ca rezultat formatarea ieșirii cu cifre integrale și zecimale, separatoare de grup și un separator zecimal cu semn negativ opțional. Acest argument este case-insensitive, deci fie N
sau n
este bine.,
Zecimale
Iată un alt exemplu, de data aceasta folosind N1
pentru a specifica faptul că vrem doar o zecimală:
SELECT FORMAT(1, 'N1');
Rezultat:
1.0
Dar puteți, de asemenea, crește numărul de zecimale prea:
SELECT FORMAT(1, 'N7');
Rezultat:
1.0000000
În aceste exemple, 1
și 7
sunt cunoscute sub numele de precizie proiectanti. specificațiile de precizie sunt opționale., Ele pot fi o valoare de la 0 la 99, care specifică precizia rezultatului. Cum funcționează depinde de specificatorul de format utilizat. Pentru unii specificatori de format, acesta va specifica numărul total de cifre din rezultat, pentru alții va specifica numărul de zecimale. În alte cazuri, acesta va fi ignorat cu totul. Consultați lista completă a specificatorilor de format Numeric standard pentru a vedea modul în care specificatorii de precizie afectează ieșirea din fiecare specificator de format. următoarele exemple utilizează argumentul P
, care formatează numărul ca valoare procentuală., Înmulțește numărul cu 100, apoi adaugă un semn procentual localizat.
SELECT FORMAT(1, 'P') AS 'Example 1', FORMAT(.375, 'P') AS 'Example 2', FORMAT(.0375, 'P', 'tr-tr') AS 'Example 3';
Rezultat:
Example 1 Example 2 Example 3--------- --------- ---------100.00 % 37.50 % %3,75
Nota că „Exemplul 3” include un al treilea argument, care specifică culturii pentru a fi utilizate în producția. În acest caz, folosesc tr-tr
pentru turcă. Acest lucru duce la semnul procentual fiind prefixat la numărul (în loc de anexat, ca și celelalte). De asemenea, rezultă o virgulă utilizată ca separator zecimal.
dacă nu furnizați argumentul „cultură”, se utilizează limba sesiunii curente.,după cum vă puteți imagina, puteți obține rezultate destul de diferite în funcție de limba dvs. curentă sau de valoarea oricărui argument „cultură”. Vedeți modul în care setările de limbă pot afecta formatul() rezultatele pentru mai multe exemple.
valută
puteți utiliza C
pentru a returna o valoare valutară.
SELECT FORMAT(1, 'C');
rezultat:
$1.00
Puteți adăuga, de asemenea, în locale ca un al treilea parametru.,
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., Pentru a face acest lucru, utilizați X
argument:
SELECT FORMAT(10, 'X');
Rezultat:
A
Iată un alt exemplu, de această dată cu un număr mai mare:
SELECT FORMAT(7145, 'X');
Rezultat:
1BE9
Format Personalizat
de asemenea, puteți crea propriul dvs. personalizat format cu ajutorul unui șir format numeric personalizat. Aceasta constă dintr-o serie de specificatori de format numeric personalizați care oferă un model pentru numărul dvs.,
Acest lucru este mai ușor de explicat cu un exemplu:
SELECT FORMAT(123456789, '##-###-####');
Rezultat:
12-345-6789
În acest caz, eu folosesc cifre substituent (#
). Substituentul de cifre îmi permite să specific un format pentru număr, folosind simbolul #
ca substituent pentru fiecare număr.
Virgule
un Alt exemplu:
SELECT FORMAT(123456789, '#,#');
Rezultat:
123,456,789
Zero,
un Alt obicei format numeric specificator este zero (0
)., Puteți utiliza acest pentru a pad-un număr cu zero:
SELECT FORMAT(7, '000') AS 'Example 1', FORMAT(123, '0000') AS 'Example 2', FORMAT(123, '00000') AS 'Example 3';
Rezultat:
Example 1 Example 2 Example 3--------- --------- ---------007 0123 00123
de asemenea, puteți folosi pentru a elimina zerouri:
SELECT FORMAT(0123, '000') AS 'Example 1', FORMAT(0123, '0000') AS 'Example 2', FORMAT(000123, '00000') AS 'Example 3';
Rezultat:
Example 1 Example 2 Example 3--------- --------- ---------123 0123 00123
Format Numeric Specificatori de Referință
următoarele articole conțin toate în format numeric specificatori puteți utiliza cu FORMAT()
funcție, împreună cu T-SQL exemple.,
- Standard Format Numeric Siruri de caractere
- Personalizat Format Numeric Siruri de caractere
Acestea sunt aceleași specificatori de format care sunt acceptate de către .NET Framework (FORMAT()
funcția se bazează pe .NET Framework).
data și ora
funcția FORMAT()
vă permite, de asemenea, să formatați data și ora.
data și ora are un set separat de specificatori de format:
- standard data și ora Format siruri de caractere
- personalizat data și ora Format siruri de caractere