Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak połączyć datę z jednego pola z czasem z innego pola - MS SQL Server

Możesz po prostu dodać te dwa.

  • jeśli Time part Twojej Date kolumna jest zawsze zero
  • i Date part Twojego Time kolumna ma zawsze zero (data bazowa:1 stycznia 1900)

Dodanie ich zwraca poprawny wynik.

SELECT Combined = MyDate + MyTime FROM MyTable

Uzasadnienie (chwała dla Erika/dnolana)

Działa to w ten sposób ze względu na sposób, w jaki data jest przechowywana jako dwie 4-bajtoweIntegers z lewymi 4 bajtami będącymi date a prawe 4 bajty to time . To jak robienie $0001 0000 + $0000 0001 = $0001 0001

Edycja dotycząca nowych typów SQL Server 2008

Date i Time to typy wprowadzone w SQL Server 2008 . Jeśli nalegasz na dodanie, możesz użyć Combined = CAST(MyDate AS DATETIME) + CAST(MyTime AS DATETIME)

Edit2 dotyczący utraty precyzji w SQL Server 2008 i nowszych (chwała dla Martina Smitha)

Zobacz Jak połączyć datę i godzinę z datetime2 w SQL Server? aby zapobiec utracie precyzji przy użyciu SQL Server 2008 i nowszych.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sparametryzować nazwę tabeli w .NET/SQL?

  2. Wymuszanie przekroczenia limitu czasu zapytania w SQL Server

  3. Błąd SQL Server 4104:Nie można powiązać wieloczęściowego identyfikatora.

  4. Dziennik transakcji SQL Server — część 1

  5. Modyfikowanie harmonogramu agentów serwera SQL (T-SQL)