De nombreuses personnes ont répondu à cette question, mais j'ai l'impression que la solution la plus simple a été laissée de côté.
SQL SERVER (je crois qu'il s'agit de 2012+) a des équivalents implicites de chaîne pour DATETIME2, comme indiqué ci-dessous ici
Consultez la section "Formats de chaîne littérale pris en charge pour datetime2".
Pour répondre explicitement à la question de l'OP :
DECLARE @myVar NCHAR(32)
DECLARE @myDt DATETIME2
SELECT @myVar = @GETDATE()
SELECT @myDt = @myVar
PRINT(@myVar)
PRINT(@myDt)
sortie :
Jan 23 2019 12:24PM
2019-01-23 12:24:00.0000000
Note : La première variable ( myVar
) détient en fait la valeur '2019-01-23 12:24:00.0000000'
également. Il est juste formaté en Jan 23 2019 12:24PM
en raison du formatage par défaut défini pour SQL SERVER qui est appelé lorsque vous utilisez PRINT
. Ne vous laissez pas déconcentrer par cela, la chaîne réelle dans (myVer)
= '2019-01-23 12:24:00.0000000'