sql >> Databasteknik >  >> RDS >> Sqlserver

Kombinera (sammanfoga) datum och tid till en datetime

Förutsatt att de underliggande datatyperna är datum/tid/datumtidtyper:

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

Detta kommer att konvertera CollectionDate och CollectionTime för att markera sekvenser, kombinera dem och konvertera dem sedan till en datetime .

Parametrarna för att CONVERT är data_type , expression och den valfria style (se syntax dokumentation ).

datum och tid style värde 112 konverterar till en ISO yyyymmdd formatera. style värde 108 konverterar till hh:mi:ss formatera. Uppenbarligen är båda 8 tecken långa, vilket är anledningen till data_type är CHAR(8) för båda.

Den resulterande kombinerade char-sekvensen är i formatet yyyymmdd hh:mi:ss och konverteras sedan till en datetime .



  1. Säkra filer för nedladdning

  2. SQLSTATE[42000]:Syntaxfel eller åtkomstöverträdelse:1066 Inte unik tabell/alias på relation

  3. Hämta primärnyckelkolumn för en tabell i Oracle

  4. Sorterbara UUID och åsidosättande ActiveRecord::Base