SQLShack (Svenska)

posted in: Articles | 0

den här artikeln förklarar användningen av SQL-Format funktion och prestanda jämförelse med SQL konvertera.

introduktion

i artikeln SQL konvertera datumfunktioner och format, diskuterade vi användningen av SQL konvertera funktion för att konvertera datum och tid till flera format. Vi har en ny funktion, SQL-FORMAT, från SQL Server 2012.

vi använder den här nya funktionen för att få utdata i ett angivet format och kultur. Den returnerar en nvarchar datatyp i utgången.,

syntax för SQL-FORMAT funktion

FORMAT (värde, format )

den har följande parametrar:

  • värde: det är värdet att formatera. Det bör vara till stöd för datatypen format. Du kan hänvisa till Microsoft-dokumentation för en lista över datatyper som stöds och deras motsvarande datatyp
  • Format: det är det format som krävs för att vi behöver utdata. Denna parameter ska innehålla en giltig. Net-formatsträng i datatypen nvarchar. Vi kan hänvisa till formattyper i .,NET För mer information
  • kultur: det är en valfri parameter. Som standard använder SQL Server det aktuella sessionsspråket för en standardkultur. Vi kan erbjuda en specifik kultur här, men. NET framework bör stödja det., 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.,

Vi kräver inte formatkod i SQL-FORMAT funktion. Låt oss titta på olika exempel på FORMATFUNKTIONEN:

SQL-Format datum med kultur

i föregående avsnitt använde vi inte kulturargumentet. Som du vet är det ett valfritt argument, så låt oss se vilken skillnad det gör om vi anger det i en fråga.

i nedanstående fråga ser vi datumformat med D-argument för olika kulturer. Du kan se tabellen för kulturkoder.,

På samma sätt, om vi ändrar formatet från d till f i ovanstående fråga, ger det följande utgång:

SQL-format valuta med kultur

Vi kan också formatera valuta med den här funktionen. Antag att du hanterar en online shoppingportal där kunder från ett annat land kommer för shopping. Du vill visa produktpriserna i sin valuta., I följande fråga använder vi FORMATFUNKTIONEN för att visa prissättning med en valutasymbol:

nummerformat med hjälp av FORMATFUNKTION

flyr kolon och perioder i SQL-FORMATFUNKTION

Vi bör undvika colons och perioder i den här funktionen, och det håller sig till.NET CLR regler också. Vi kan använda kolon och period som den andra parametern, och den första parametern ska vara en backslash., I följande exempel, låt oss se det andra formatet satsen hoppar kolon i den angivna tiden:

Prestandajämförelse av SQL-FORMAT och SQL konvertera funktion

vi utforskade användningsfall av FORMAT funktion. Du kanske tycker att vi ska sluta använda SQL CONVERT-funktionen och börja använda SQL-formatet. Vänta! Låt oss göra en jämförelse av både SQL-FORMAT och SQL konvertera.,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 och sys.dm_exec_sql_text för att få prestandajämförelsedata för de valda uttalandena vi exekverade ovan.

    vi får följande utdata från DMV:

    för att förstå det bättre, låt oss se dessa data i ett diagram:

    titta på grafen för fråga 2, 3 och 4.,

    • vi får hög förfluten tid för frågan som använder SQL-FORMAT funktion
    • frågor som använder konvertera funktionen har bättre prestanda jämfört med FORMAT funktion
    • vi ser också total_clr_time för frågan med FORMAT funktion medan det är noll för konvertera funktion frågor eftersom formatet funktionen använder. Net CLR runtime

    slutsats

    SQL-FORMAT funktion är användbar för att konvertera datum, tid, nummer, valuta i ett visst format. Vi bör använda den när vi behöver lokala medvetna ändringar bara eftersom det kan orsaka prestandaproblem., Vi bör använda SQL CONVERT-funktionen för alla andra fall. Om du planerar att använda den i produktion, skulle jag rekommendera att göra en grundlig prestandatestning för din arbetsbelastning.,

    • författare
    • Senaste inlägg
    som MCSA-certifierad och Microsoft-certifierad tränare i Gurgaon, Indien, med 13 år av erfarenhet arbetar Rajendra för en mängd stora företag med fokus på prestandaoptimering, övervakning, hög tillgänglighet och strategier för katastrofåterställning och genomförande., Han är författare till hundratals auktoritativa artiklar på SQL Server, Azure, MySQL, Linux, Power BI, Performance tuning, AWS/Amazon RDS, Git, och relaterade tekniker som har visats av över 10m läsare hittills.
    han är skaparen av en av de största gratis online samlingar av artiklar om ett enda ämne, med sin 50-del serien på SQL Server alltid på tillgänglighet grupper. Baserat på hans bidrag till SQL Server-samhället har han blivit erkänd med olika utmärkelser, inklusive den prestigefyllda ”årets bästa författare” kontinuerligt i 2020 och 2021 på SQLShack.,
    Raj är alltid intresserad av nya utmaningar så om du behöver konsulthjälp i något ämne som omfattas av hans skrifter, kan han nås på rajendra.gupta16@gmail.,com
    Visa alla inlägg från Rajendra Gupta

    Senaste inlägg från Rajendra Gupta (se alla)
    • Session timeouts i SQL Server alltid på Tillgänglighetsgrupper – 8 februari 2021
    • utföra mindre och större versionsuppgraderingar för AWS RDS SQL Server – 29 januari, 2021
    • distribuera AWS rds PostgreSQL instanser – januari 27, 2021

    Lämna ett svar

    Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *