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

Łączenie (konkatenowanie) daty i czasu w datetime

Zakładając, że bazowymi typami danych są typy daty/czasu/daty/godziny:

SELECT CONVERT(DATETIME, CONVERT(CHAR(8), CollectionDate, 112) 
  + ' ' + CONVERT(CHAR(8), CollectionTime, 108))
  FROM dbo.whatever;

Spowoduje to przekonwertowanie CollectionDate i CollectionTime do sekwencji znaków, połącz je, a następnie przekonwertuj na datetime .

Parametry do CONVERTdata_type , expression i opcjonalny style (patrz składnia dokumentacja ).

data i godzina style wartość 112 konwertuje na ISO yyyymmdd format. style wartość 108 konwertuje na hh:mi:ss format. Najwyraźniej oba mają długość 8 znaków, dlatego data_type to CHAR(8) dla obu.

Wynikowa połączona sekwencja znaków ma format yyyymmdd hh:mi:ss a następnie przekonwertować na datetime .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Entity Framework:istnieje już otwarty DataReader skojarzony z tym poleceniem

  2. Pobierz ConnectionString z app.config w c#

  3. Jak ustawić kolor paska stanu w SSMS dla różnych instancji SQL Server — samouczek SQL Server / TSQL, część 6

  4. Zamiana NULL na 0 w zapytaniu do serwera SQL

  5. Jaki jest najlepszy sposób na skrócenie daty w SQL Server?