Du kan helt enkelt lägga till de två.
- om
Time part
av dittDate
kolumnen är alltid noll - och
Date part
av dinTime
kolumnen är också alltid noll (basdatum:1 januari 1900)
Om du lägger till dem får du rätt resultat.
SELECT Combined = MyDate + MyTime FROM MyTable
Rational (kudos till ErikE/dnolan)
Det fungerar så här på grund av hur datumet lagras som två 4-byte
Integers
med den vänstra 4-byten somdate
och höger4-byte ärtime
. Det är som att göra$0001 0000 + $0000 0001 = $0001 0001
Redigera angående nya SQL Server 2008-typer
Date
och Time
är typer som introduceras i SQL Server 2008
. Om du insisterar på att lägga till kan du använda Combined = CAST(MyDate AS DATETIME) + CAST(MyTime AS DATETIME)
Redigering2 angående förlust av precision i SQL Server 2008 och uppåt (kudos till Martin Smith)
Ta en titt på Hur man kombinerar datum och tid till datetime2 i SQL Server? för att förhindra förlust av precision med SQL Server 2008 och senare.