Você pode simplesmente adicionar os dois.
- se a
Time partda suaDatecoluna é sempre zero - e a
Date partdo seuTimecoluna 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 doisIntegersde 4 bytes com os 4 bytes esquerdos sendo adatee 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.