sql >> Database >  >> RDS >> Sqlserver

Hoe de datum uit het ene veld te combineren met de tijd uit een ander veld - MS SQL Server

Je kunt de twee eenvoudig toevoegen.

  • als het Time part van je Date kolom is altijd nul
  • en het Date part van je Time kolom is ook altijd nul (basisdatum:1 januari 1900)

Door ze toe te voegen krijg je het juiste resultaat.

SELECT Combined = MyDate + MyTime FROM MyTable

Rationale (een pluim voor ErikE/dnolan)

Het werkt zo vanwege de manier waarop de datum wordt opgeslagen als twee 4-byteIntegers met de linker 4-bytes als date en de juiste 4-bytes zijn de time . Het is alsof je $0001 0000 + $0000 0001 = $0001 0001 . doet

Bewerken met betrekking tot nieuwe SQL Server 2008-typen

Date en Time zijn typen geïntroduceerd in SQL Server 2008 . Als u erop staat toe te voegen, kunt u Combined = CAST(MyDate AS DATETIME) + CAST(MyTime AS DATETIME) gebruiken

Edit2 betreffende verlies van precisie in SQL Server 2008 en hoger (kudos voor Martin Smith)

Kijk eens bij Hoe datum en tijd combineren tot datetime2 in SQL Server? om verlies van precisie te voorkomen bij gebruik van SQL Server 2008 en hoger.



  1. EXCEPT-clausule gebruiken in PostgreSQL

  2. Hoe kopieer ik SQL Azure-database naar mijn lokale ontwikkelserver?

  3. Afkapdatumveld in mysql zoals Oracle

  4. Hoe een applicatie met sql-serverdatabase op clients te implementeren