När du använder SQL Server kan du konvertera ett datum-/tidsvärde till en sträng genom att använda CONVERT()
fungera. Denna funktion låter dig konvertera mellan olika datatyper.
I den här artikeln kommer vi att konvertera mellan olika datum-/tiddatatyper till en varchar
eller nvarchar
sträng.
En av de bra sakerna med den här funktionen är att den låter dig ange stilen som datumet ska returneras i. Du kan till exempel ange om det ska returneras som mm/dd/åååå , åååå.mm.dd , mån dd, åååå , etc. Du kan också ange om tidskomponenten ska returneras och hur den är utformad.
Syntax
Först, så här går den officiella syntaxen till:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
Dessa argument definieras enligt följande:
expression
- Alla giltiga uttryck.
data_type
- Måldatatypen. Detta inkluderar xml , stor och sql_variant . Alias datatyper kan inte användas.
length
- Ett valfritt heltal som anger längden på måldatatypen. Standardvärdet är
30
. style
- Ett heltalsuttryck som anger hur
CONVERT()
funktion kommer att översätta uttryck . För stilvärdet NULL returneras NULL. data_type bestämmer intervallet.
Grundläggande exempel
I det här exemplet deklarerar vi en variabel och tilldelar ett värde från GETDATE()
fungera. Vi returnerar sedan värdet, och vi konverterar även det värdet till varchar
och returnera det:
DECLARE @date datetime = GETDATE(); SELECT @date AS Original, CONVERT(varchar, @date) AS Converted;
Resultat:
+-------------------------+---------------------+ | Original | Converted | |-------------------------+---------------------| | 2018-06-07 03:08:21.997 | Jun 7 2018 3:08AM | +-------------------------+---------------------+
Standardlängden för returdatatypen är 30
, så även om vi bara angav varchar
, kommer det att returnera resultatet som en varchar(30)
.
I det här exemplet angav vi inte ett tredje argument för att indikera stilen som vi vill att den ska returneras i. Därför har den konverterats med standardformatet för datetime och smalldatetime datatyper, vilket är 0
eller 100
(mer om stilar nedan).
Ange en stil
Du kan använda ett tredje argument för att ange stilen som returvärdet ska ta på:
DECLARE @date datetime = GETDATE(); SELECT @date AS Original, CONVERT(varchar(30), @date, 102) AS Converted;
Resultat:
+-------------------------+-------------+ | Original | Converted | |-------------------------+-------------| | 2018-06-07 03:42:33.840 | 2018.06.07 | +-------------------------+-------------+
I det här exemplet specificerade vi stilen 102
, som är ANSI-standarden för att visa ett datum med en fyrsiffrig årskomponent.
För att ändra detta till ett ANSI-format med ett tvåsiffrigt år, kan vi använda stilen 2
:
DECLARE @date datetime = GETDATE(); SELECT @date AS Original, CONVERT(varchar(30), @date, 2) AS Converted;
Resultat:
+-------------------------+-------------+ | Original | Converted | |-------------------------+-------------| | 2018-06-07 03:44:52.433 | 18.06.07 | +-------------------------+-------------+
Du kan se fler exempel på CONVERT() från datum/tid till exempel på strängar i SQL Server.