sql >> Databáze >  >> RDS >> Sqlserver

Jak kombinovat datum z jednoho pole s časem z jiného pole - MS SQL Server

Můžete jednoduše přidat dva.

  • pokud Time part vašeho Date sloupec je vždy nula
  • a Date part vašeho Time sloupec je také vždy nula (základní datum:1. ledna 1900)

Jejich přidáním se vrátí správný výsledek.

SELECT Combined = MyDate + MyTime FROM MyTable

Odůvodnění (chvála ErikE/dnelanovi)

Funguje to takto, protože datum je uloženo jako dvě 4bajtováIntegers přičemž levé 4 bajty jsou date a pravé 4 bajty jsou time . Je to jako dělat $0001 0000 + $0000 0001 = $0001 0001

Úpravy týkající se nových typů SQL Server 2008

Date a Time jsou typy představené v SQL Server 2008 . Pokud trváte na přidání, můžete použít Combined = CAST(MyDate AS DATETIME) + CAST(MyTime AS DATETIME)

Úprava 2 týkající se ztráty přesnosti v SQL Server 2008 a novějších (chvála Martinu Smithovi)

Podívejte se na Jak zkombinovat datum a čas s datetime2 v SQL Server? abyste zabránili ztrátě přesnosti pomocí SQL Server 2008 a vyšší.



  1. PostgreSQL:FATAL – Ověření peer selhalo pro uživatele (PG::ConnectionBad)

  2. Název tabulky jako proměnná

  3. Jak najít výchozí umístění souboru pro datové soubory a soubory protokolu na serveru SQL Server

  4. Jak mohu VYBRAT řádky s MAX (hodnota sloupce), PARTITION jiným sloupcem v MYSQL?