SQLShack (Čeština)

posted in: Articles | 0

Tento článek vysvětluje použití Formátu SQL funkce a výkon, srovnání s SQL PŘEVÉST.

Úvod

v článku SQL Convert Date functions and formats jsme diskutovali o použití funkce SQL CONVERT pro převod data a času do více formátů. Máme novou funkci, Formát SQL, z SQL Server 2012.

tuto novou funkci používáme k získání výstupu v určeném formátu a kultuře. Vrací datový typ nvarchar ve výstupu.,

Syntaxe SQL FORMÁTU Funkce

FORMÁT (hodnota, formát )

má tyto parametry:

  • Hodnota: To je hodnota, udělat formátování. Mělo by být na podporu formátu datového typu. Můžete odkazovat na dokumentaci společnosti Microsoft pro seznam podporovaných datových typů a jejich ekvivalentní datový typ
  • Formát: To je požadovaný formát, ve kterém požadujeme na výstupu. Tento parametr by měl obsahovat platný řetězec formátu. Net v datovém typu NVARCHAR. Můžeme odkazovat na typy formátů v.,NET pro více informací
  • kultura: jedná se o volitelný parametr. Ve výchozím nastavení používá SQL Server pro výchozí kulturu aktuální jazyk relace. Můžeme zde poskytnout konkrétní kulturu, ale.Net framework by ji měl podporovat., 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.,

nevyžadujeme formátovací kód ve funkci SQL FORMAT. Podívejme se na různé příklady funkce formátu:

Datum formátu SQL pomocí kultury

v předchozí části jsme nepoužívali argument kultury. Jak víte, jedná se o volitelný argument, takže se podívejme, jaký je rozdíl, pokud jej zadáme v dotazu.

v níže uvedeném dotazu vidíme formát data pomocí argumentu d pro různé kultury. Můžete se obrátit na tabulku kulturních kódů.,

Podobně, pokud máme změnit formát od d do f ve výše uvedeném dotazu, dává následující výstup:

SQL Formátu Měny pomocí Kultury

můžeme také formát měny pomocí této funkce. Předpokládejme, že spravujete online nákupní portál, kde zákazníci z jiné země přicházejí na nákupy. Chcete zobrazit ceny produktů v jejich měně., V následujícím dotazu, můžeme použít funkci FORMÁTOVÁNÍ pro zobrazení cen s symbol měny:

formát Čísla pomocí FORMÁTU funkce

Escapování Dvojteček a Období v SQL FORMÁTU funkce

měli Bychom se vyhnout dvojtečky a období v této funkci, a to je dodržování .NET CLR pravidla stejně. Jako druhý parametr můžeme použít dvojtečky a periodu a prvním parametrem by mělo být zpětné lomítko., V následujícím příkladu, podívejme se na druhý formát prohlášení přeskočí tlustého střeva v zadaný čas:

porovnání Výkonu z FORMÁTU SQL a SQL funkce CONVERT

Jsme zkoumali případy použití funkce FORMAT. Možná si myslíte, že bychom měli přestat používat funkci SQL CONVERT a začít používat formát SQL. Počkej! Pojďme provést srovnání formátu 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 a sys.dm_exec_sql_text pro získání údajů o porovnání výkonu vybraných příkazů, které jsme provedli výše.

    dostaneme následující výstup z databáze:

    , Aby to lépe pochopit, pojďme se zobrazit tato data v grafu:

    Podívejte se na graf pro dotaz 2, 3 a 4.,

    • získat vysoké uplynulý čas pro dotaz, který používá SQL FORMÁTU funkce
    • Dotazy, které pomocí funkce CONVERT mít lepší výkon porovnat FORMÁTU funkce
    • Můžeme také vidět total_clr_time pro dotaz s FORMÁT funkce, zatímco to je nula pro funkce CONVERT dotazy, protože formát funkce používá .Net CLR runtime

    Závěr

    SQL FORMÁT funkce je užitečná, chcete převést data, času, čísla, měny ve stanoveném formátu. Měli bychom ji použít, když požadujeme změny v prostředí, které jsou si vědomy pouze proto, že by to mohlo způsobit problémy s výkonem., Měli bychom použít funkci SQL CONVERT pro všechny ostatní případy. Pokud jej plánujete používat ve výrobě, doporučil bych provést důkladné testování výkonu pro vaši pracovní zátěž.,

    • Autora
    • Poslední Příspěvky
    Jako MCSA certifikované a Microsoft Certified Trainer v Gurgaon, Indie, s 13 let zkušeností, Rajendra pracuje pro řadu velkých společností se zaměřením na optimalizaci výkonu, monitorování, vysoké dostupnosti a disaster recovery strategie a provádění., Je autorem stovek autoritativních článků o SQL Serveru, Azure, MySQL, Linuxu, Power BI, Performance tuning, AWS/Amazon RDS, Git a souvisejících technologiích, které dosud vidělo více než 10M čtenářů.
    je tvůrcem jedné z největších bezplatných online sbírek článků na jedno téma, s jeho 50dílnou sérií na serveru SQL vždy na skupinách dostupnosti. Na základě svého příspěvku do komunity SQL Server byl v letech 2020 a 2021 na sqlshacku nepřetržitě oceněn různými oceněními včetně prestižního „nejlepšího autora roku“.,
    Raj je vždy zájem o nové výzvy, takže pokud budete potřebovat poradenství na jakékoliv téma, na něž v jeho spisech, on může být dosaženo na rajendra.gupta16@gmail.,com
    Zobrazit všechny příspěvky od Rajendra Gupta

    Nejnovější příspěvky Rajendra Gupta (zobrazit všechny)
    • Relace časové limity v SQL Server Vždy Na Skupiny Dostupnosti – 8. února 2021
    • Vykonávající vedlejší a hlavní verze aktualizace pro AWS RDS SQL Server – 29. ledna 2021
    • Nasazení AWS RDS instance PostgreSQL – 27. ledna 2021

    Napsat komentář

    Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *