Dit artikel legt het gebruik van SQL Format functie en prestatie vergelijking met SQL CONVERT uit.
Inleiding
In het artikel SQL Convert date functies en formaten, bespraken we het gebruik van SQL CONVERT functie voor het converteren van datum en tijd in meerdere formaten. We hebben een nieuwe functie, SQL-formaat, van SQL Server 2012.
we gebruiken deze nieuwe functie om uitvoer in een bepaald formaat en cultuur te krijgen. Het retourneert een nvarchar gegevenstype in de uitvoer.,
syntaxis van SQL FORMAT Function
FORMAT (value, format )
Het heeft de volgende parameters:
- waarde: het is de waarde om te formatteren. Het moet ter ondersteuning van het gegevenstype formaat. U kunt naar de documentatie van Microsoft verwijzen voor een lijst met ondersteunde gegevenstypen en hun equivalente gegevenstype
- formaat: Het is het vereiste formaat waarin we de uitvoer nodig hebben. Deze parameter moet een geldige. net format string bevatten in het nvarchar data type. We kunnen verwijzen naar Format types in .,NET voor meer details
- cultuur: het is een optionele parameter. Standaard gebruikt SQL Server de huidige sessietaal voor een standaardcultuur. We kunnen hier een specifieke cultuur bieden, maar het. NET framework zou dat moeten ondersteunen., 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.,
we hebben geen opmaakcode nodig in de SQL-opmaakfunctie. Laten we eens kijken naar verschillende voorbeelden van de opmaakfunctie:
SQL-Opmaakdatum met behulp van Cultuur
In de vorige sectie hebben we het cultuurargument niet gebruikt. Zoals je weet, is het een optioneel argument, dus laten we eens kijken wat het verschil maakt als we het specificeren in een query.
in de onderstaande query zien we datumnotatie met D-argument voor verschillende culturen. U kunt verwijzen naar de tabel voor cultuurcodes.,
Evenzo, als we het formaat wijzigen van d naar f in de bovenstaande query, geeft het de volgende uitvoer:
SQL formaat valuta met behulp van Cultuur
We kunnen ook valuta formatteren met behulp van deze functie. Stel dat u het beheer van een online shopping portal waar klanten uit een ander land komen om te winkelen. U wilt de prijzen van het product weer te geven in hun valuta., In de volgende query gebruiken we de opmaakfunctie voor het weergeven van prijzen met een valutasymbool:
getalnotatie met behulp van opmaakfunctie
ontsnappende dubbele punten en perioden in SQL-opmaakfunctie
We moeten dubbele punten en perioden in deze functie vermijden, en het is vasthouden aan de.net CLR regels ook. We kunnen dubbele punten en punt gebruiken als de tweede parameter, en de eerste parameter zou een backslash moeten zijn., In het volgende voorbeeld, zie het tweede format statement slaat de dubbele punt over in de opgegeven tijd:
prestatie vergelijking van SQL formaat en SQL CONVERT functie
we hebben de use cases van FORMAT functie onderzocht. Je zou kunnen denken dat we moeten stoppen met het gebruik van de SQL CONVERT functie en beginnen met het SQL-formaat. Wacht! Laten we een vergelijking maken van zowel SQL-formaat als 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 en sys. dm_exec_sql_text om de prestatievergelijkingsgegevens te krijgen van de geselecteerde statements die we hierboven hebben uitgevoerd.
we krijgen de volgende uitvoer van de DMV:
om het beter te begrijpen, bekijken we deze gegevens in een grafiek:
Kijk naar de grafiek voor query 2, 3 en 4.,
- We krijgen een hoge verstreken tijd voor de query die gebruik maakt van SQL FORMAT functie
- query ’s die gebruik maken van de CONVERT functie hebben betere prestaties vergeleken met FORMAT functie
- we zien ook total_clr_time voor de query met FORMAT functie terwijl het nul is voor CONVERT functie query’ s omdat de format functie gebruikt.Net CLR runtime
conclusie
SQL FORMAT functie is nuttig om de data, tijd, aantal te converteren, valuta in een bepaald formaat. We moeten het alleen gebruiken als we lokale veranderingen nodig hebben omdat het problemen met de prestaties kan veroorzaken., We zouden de SQL CONVERT functie moeten gebruiken voor alle andere gevallen. Als u van plan bent om het te gebruiken in de productie, zou ik aanraden om een grondige prestatietest te doen voor uw werkdruk.,
- auteur
- recente berichten
hij is de maker van een van de grootste gratis online collecties van artikelen over een enkel onderwerp, met zijn 50-delige serie op SQL Server Always On Availability Groups. Op basis van zijn bijdrage aan de SQL Server community, werd hij in 2020 en 2021 bij SQLShack onderscheiden met verschillende prijzen, waaronder de prestigieuze “beste auteur van het jaar”.,Raj is altijd geïnteresseerd in nieuwe uitdagingen, dus als je advies nodig hebt over een onderwerp dat in zijn geschriften wordt behandeld, kan hij worden bereikt in rajendra.gupta16@gmail.,com
Bekijk alle berichten van Rajendra Gupta
- Sessie time-outs in SQL Server Altijd Over de Beschikbaarheid van deze Groepen – 8 februari 2021
- Uitvoeren van kleine en grote versie-upgrades voor AWS RDS-SQL Server – 29 januari 2021
- het Implementeren van AWS RDS-PostgreSQL gevallen, 27 januari 2021
Geef een reactie