Wanneer u SQL Server gebruikt, kunt u een datum/tijd-waarde converteren naar een tekenreeks met behulp van de CONVERT()
functie. Met deze functie kunt u tussen verschillende gegevenstypen converteren.
In dit artikel zullen we tussen verschillende datum/tijd-gegevenstypen converteren naar een varchar
of nvarchar
tekenreeks.
Een van de goede dingen van deze functie is dat je de stijl kunt specificeren waarin de datum wordt geretourneerd. Je kunt bijvoorbeeld specificeren of deze wordt geretourneerd als mm/dd/jjjj , jjjj.mm.dd , Ma dd, jjjj , enz. U kunt ook specificeren of de tijdcomponent wordt geretourneerd en hoe deze wordt gestyled.
Syntaxis
Ten eerste, hier is hoe de officiële syntaxis werkt:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
Deze argumenten worden als volgt gedefinieerd:
expression
- Elke geldige uitdrukking.
data_type
- Het doelgegevenstype. Dit omvat xml , groot , en sql_variant . Alias-gegevenstypen kunnen niet worden gebruikt.
length
- Een optioneel geheel getal dat de lengte van het doelgegevenstype aangeeft. De standaardwaarde is
30
. style
- Een integer-expressie die specificeert hoe de
CONVERT()
functie vertaalt uitdrukking . Voor een stijlwaarde van NULL wordt NULL geretourneerd. data_type bepaalt het bereik.
Basisvoorbeeld
In dit voorbeeld declareren we een variabele en wijzen we een waarde toe uit de GETDATE()
functie. We retourneren dan de waarde en we converteren die waarde ook naar varchar
en geef dat terug:
DECLARE @date datetime = GETDATE(); SELECT @date AS Original, CONVERT(varchar, @date) AS Converted;
Resultaat:
+-------------------------+---------------------+ | Original | Converted | |-------------------------+---------------------| | 2018-06-07 03:08:21.997 | Jun 7 2018 3:08AM | +-------------------------+---------------------+
De standaardlengte van het retourgegevenstype is 30
, dus ook al hebben we alleen varchar
specified opgegeven , retourneert het het resultaat als een varchar(30)
.
In dit voorbeeld hebben we geen derde argument gegeven om de stijl aan te geven waarin we het willen retourneren. Daarom is het geconverteerd met de standaardstijl voor datetime en smalldatetime gegevenstypen, dat is 0
of 100
(meer over stijlen hieronder).
Een stijl specificeren
U kunt een derde argument gebruiken om de stijl te specificeren die de retourwaarde zal aannemen:
DECLARE @date datetime = GETDATE(); SELECT @date AS Original, CONVERT(varchar(30), @date, 102) AS Converted;
Resultaat:
+-------------------------+-------------+ | Original | Converted | |-------------------------+-------------| | 2018-06-07 03:42:33.840 | 2018.06.07 | +-------------------------+-------------+
In dit voorbeeld hebben we een stijl gespecificeerd van 102
, wat de ANSI-standaard is voor het weergeven van een datum met een jaarcomponent van vier cijfers.
Om dit te veranderen in een ANSI-formaat met een jaartal van twee cijfers, kunnen we een stijl van 2
gebruiken :
DECLARE @date datetime = GETDATE(); SELECT @date AS Original, CONVERT(varchar(30), @date, 2) AS Converted;
Resultaat:
+-------------------------+-------------+ | Original | Converted | |-------------------------+-------------| | 2018-06-07 03:44:52.433 | 18.06.07 | +-------------------------+-------------+
U kunt meer voorbeelden zien op CONVERT() van Datum/Tijd naar Tekenreeksvoorbeelden in SQL Server.