Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como combinar a data de um campo com a hora de outro campo - MS SQL Server


Você pode simplesmente adicionar os dois.
  • se a Time part da sua Date coluna é sempre zero
  • e a Date part do seu Time 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 dois Integers de 4 bytes com os 4 bytes esquerdos sendo a date e os right4-bytes sendo o time . É 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.