sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man kombinerar datum från ett fält med tid från ett annat fält - MS SQL Server

Du kan helt enkelt lägga till de två.

  • om Time part av ditt Date kolumnen är alltid noll
  • och Date part av din Time 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-byteIntegers med den vänstra 4-byten som date och höger4-byte är time . 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.



  1. Välj från en tabell där inte i en annan

  2. Hur man genererar ett skript från ett diagram i MySQL Workbench

  3. *VARNING* Kan inte öppna fler databaser buggar med Microsoft Office build 2201

  4. Noll Data Loss Recovery Appliance