Você pode simplesmente adicionar os dois.
- se a
Time part
da suaDate
coluna é sempre zero - e a
Date part
do seuTime
coluna também é sempre zero (data base:1º de janeiro de 1900)
Adicioná-los retorna o resultado correto.
SELECT Combined = MyDate + MyTime FROM MyTable
Fundamentos (parabéns a ErikE/dnolan)
Funciona assim devido à forma como a data é armazenada como doisIntegers
de 4 bytes com os 4 bytes esquerdos sendo adate
e os right4-bytes sendo otime
. É como fazer$0001 0000 + $0000 0001 = $0001 0001
Edição referente aos novos tipos do SQL Server 2008
Date
e Time
são tipos introduzidos no SQL Server 2008
. Se você insistir em adicionar, você pode usar Combined = CAST(MyDate AS DATETIME) + CAST(MyTime AS DATETIME)
Edit2 em relação à perda de precisão no SQL Server 2008 e superior (parabéns a Martin Smith)
Dê uma olhada em Como combinar data e hora para datetime2 no SQL Server? para evitar a perda de precisão usando o SQL Server 2008 e superior.