Come combinare la data e l'ora a DateTime2 in SQL Server?
-
01-11-2019 - |
Domanda
Dati i seguenti componenti
DECLARE @D DATE = '2013-10-13'
DECLARE @T TIME(7) = '23:59:59.9999999'
Qual è il modo migliore per combinarli per produrre un DATETIME2(7)
risultato con valore '2013-10-13 23:59:59.9999999'
?
Alcune cose che non I lavori sono elencati di seguito.
SELECT @D + @T
La data del tipo di dati opera e non è valida per l'operatore aggiuntivo.
SELECT CAST(@D AS DATETIME2(7)) + @T
Tipo di dati operand DateTime2 non è valido per l'operatore ADD.
SELECT DATEADD(NANOSECOND,DATEDIFF(NANOSECOND,CAST('00:00:00.0000000' AS TIME),@T),@D)
La funzione DateDiff ha provocato un overflow. Il numero di parti da data che separano due istanze di data/ora è troppo grande. Prova a utilizzare Datediff con una data data meno precisa.
* L'overflow può essere evitato nel database SQL di Azure e nel SQL Server 2016, utilizzando DATEDIFF_BIG
.
SELECT CAST(@D AS DATETIME) + @T
I tipi di dati DateTime e il tempo sono incompatibili nell'operatore ADD.
SELECT CAST(@D AS DATETIME) + CAST(@T AS DATETIME)
Restituisce un risultato ma perde precisione
2013-10-13 23:59:59.997
Nessuna soluzione corretta