Comment combiner la date et l'heure à DateTime2 dans SQL Server?
-
01-11-2019 - |
Question
Compte tenu des composants suivants
DECLARE @D DATE = '2013-10-13'
DECLARE @T TIME(7) = '23:59:59.9999999'
Quelle est la meilleure façon de les combiner pour produire un DATETIME2(7)
Résultat avec valeur '2013-10-13 23:59:59.9999999'
?
Certaines choses qui ne le faites pas Les travaux sont répertoriés ci-dessous.
SELECT @D + @T
La date de type de données de l'opérande n'est pas valide pour l'opérateur ADD.
SELECT CAST(@D AS DATETIME2(7)) + @T
Le type de données de l'opérande DateTime2 n'est pas valide pour l'opérateur ADD.
SELECT DATEADD(NANOSECOND,DATEDIFF(NANOSECOND,CAST('00:00:00.0000000' AS TIME),@T),@D)
La fonction Dadiff a entraîné un débordement. Le nombre de dateparts séparant deux instances de date / heure est trop important. Essayez d'utiliser DADAIFF avec un DatePart moins précis.
* Le débordement peut être évité dans Azure SQL Database et SQL Server 2016, en utilisant DATEDIFF_BIG
.
SELECT CAST(@D AS DATETIME) + @T
Les types de données datetime et le temps sont incompatibles dans l'opérateur ADD.
SELECT CAST(@D AS DATETIME) + CAST(@T AS DATETIME)
Renvoie un résultat mais perd de la précision
2013-10-13 23:59:59.997
Pas de solution correcte