SQLShack (Română)

posted in: Articles | 0

Acest articol descrie modul de utilizare a Format SQL funcția și performanța comparație cu SQL CONVERTI.

Introducere

în articolul SQL Convert date functions and formats, am discutat despre utilizarea funcției SQL CONVERT pentru conversia datei și orei în mai multe formate. Avem o nouă funcție, SQL FORMAT, de la SQL Server 2012.

noi folosim această nouă funcție pentru a obține de ieșire într-un format specificat și Cultură. Returnează un tip de date NVARCHAR în ieșire.,

sintaxa funcției de format SQL

FORMAT (valoare, format )

are următorii parametri:

  • valoare: este valoarea de formatare. Ar trebui să fie în sprijinul formatului de tip de date. Puteți consulta documentația Microsoft pentru o listă de tipuri de date acceptate și tipul lor de date echivalent
  • Format: este formatul necesar în care avem nevoie de ieșire. Acest parametru ar trebui să conțină un șir de format.net valid în tipul de date NVARCHAR. Ne putem referi la tipurile de Format din .,NET pentru mai multe detalii
  • cultură: este un parametru opțional. În mod implicit, SQL Server utilizează limba curentă a sesiunii pentru o cultură implicită. Putem oferi o cultură specifică aici, dar. NET framework ar trebui să o susțină., We get an error message in case of invalid Culture

We use the following SQL CONVERT function to get output in format:

1
SELECT CONVERT(VARCHAR(10), GETDATE(), 101) AS

As we know, we require format code in SQL Convert function for converting output in a specific format.,

nu avem nevoie de cod de format în funcție de format SQL. Să ne uităm la diferite exemple ale funcției de FORMAT:

data formatului SQL folosind cultura

în secțiunea anterioară, nu am folosit argumentul culturii. După cum știți, este un argument opțional, deci să vedem ce diferență face dacă îl specificăm într-o interogare.

în interogarea de mai jos, vom vedea formatul datei folosind argumentul d pentru diferite culturi. Puteți consulta tabelul pentru codurile de cultură.,

în mod Similar, dacă vom schimba formatul de la d la f în interogarea de mai sus, se dă următoarea ieșire:

SQL Format Monedă, folosind Cultura

putem, de asemenea, format monedă, folosind această funcție. Să presupunem că gestionați un portal de cumpărături online unde clienții dintr-o altă țară vin pentru cumpărături. Doriți să afișați prețurile produselor în moneda lor., În următoarea interogare, vom folosi functia FORMAT pentru afișarea prețurilor cu un simbol moneda:

format de Număr, folosind functia FORMAT

Evadarea două puncte și Perioadele în FORMAT SQL function

ar trebui să evite două puncte și perioadele în această funcție, și este aderarea la .NET CLR reguli la fel de bine. Putem folosi punctele și perioada ca al doilea parametru, iar primul parametru ar trebui să fie un backslash., În exemplul următor, să vedem a doua declarație format sare peste două puncte în timpul specificat:

comparație de performanță de format SQL și SQL CONVERT funcția

am explorat cazurile de utilizare a funcției FORMAT. S-ar putea să credeți că ar trebui să oprim utilizarea funcției SQL CONVERT și să începem să folosim formatul SQL. Stai! Să facem o comparație între formatul SQL și SQL CONVERT.,v>

  • Query4: Select all records from TestPerfomance order by ID column and use FORMAT function for the InputTime column:

    1
    2
    3
    4

    SELECT FORMAT(InputTime, ‘yyyy-MM-dd’)
    FROM TestPerformance
    ORDER BY id;
    GO 10

  • We can use DMV sys.,dm_exec_query_stats și SYS. dm_exec_sql_text pentru a obține datele de comparare a performanței declarațiilor selectate pe care le-am executat mai sus.

    Vom obține următorul rezultat de la DMV:

    Să-l înțeleagă mai bine, să vizualizați datele într-un grafic:

    Uită-te la graficul de interogare 2, 3 și 4.,

    • noi Am luat o mare de timp scurs de interogare care utilizează SQL functia FORMAT
    • Interogări care folosesc funcție de conversie au o performanță mai bună compara cu functia FORMAT
    • Ne-am vedea, de asemenea, total_clr_time pentru interogare cu functia FORMAT în timp ce acesta este zero pentru a CONVERTI funcție de interogări pentru formatul funcție de utilizări .Net runtime CLR

    Concluzie

    FORMAT SQL funcție este utilă pentru a converti date, timp, număr, monedă, într-un format specificat. Ar trebui să-l folosim atunci când avem nevoie de modificări conștiente de localizare doar deoarece ar putea cauza probleme de performanță., Ar trebui să folosim funcția SQL CONVERT pentru toate celelalte cazuri. Dacă intenționați să o utilizați în producție, vă recomand să efectuați o testare amănunțită a performanței pentru volumul de muncă.,

    • Autor
    • Mesajele Recente
    Ca un MCSA certificate și Microsoft Certified Trainer în Gurgaon, India, cu 13 ani de experiență, Rajendra lucrează pentru o varietate de companii mari, concentrându-se pe optimizarea performanței, de monitorizare, de înaltă disponibilitate și recuperare în caz de dezastru și strategiile de punere în aplicare., Este autorul a sute de articole autoritare despre SQL Server, Azure, MySQL, Linux, Power BI, Tuning de performanță, AWS/Amazon RDS, Git și tehnologii conexe care au fost vizualizate de cititorii 10m până în prezent.
    el este creatorul uneia dintre cele mai mari colecții online gratuite de articole pe un singur subiect, cu seria sa de 50 de părți pe SQL Server întotdeauna pe grupuri de disponibilitate. Pe baza contribuției sale la comunitatea SQL Server, el a fost recunoscut cu diverse premii, inclusiv prestigiosul „cel mai bun autor al anului” continuu în 2020 și 2021 la sqlshack.,
    Raj este întotdeauna interesat de noi provocări, așa că dacă aveți nevoie de ajutor de consultanță cu privire la orice subiect acoperit în scrierile sale, el poate fi contactat la rajendra.gupta16 @ gmail.,com
    Vezi toate posturile de Rajendra Gupta

    Ultimele posturi de Rajendra Gupta (vezi toate)
    • timeout Sesiune în SQL Server Mereu Pe Grupuri de Disponibilitate – februarie 8, 2021
    • Efectuarea minore și majore versiune upgrade-uri pentru AWS RDS SQL Server – 29 ianuarie 2021
    • Implementarea AWS RDS PostgreSQL cazuri – 27 ianuarie 2021

    Lasă un răspuns

    Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *