Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Combiner (concaténer) la date et l'heure dans une date/heure

En supposant que les types de données sous-jacents sont des types date/heure/dateheure :

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

Cela convertira CollectionDate et CollectionTime en séquences de caractères, combinez-les, puis convertissez-les en un datetime .

Les paramètres à CONVERT sont data_type , expression et le style facultatif (voir syntaxe documents ).

Le date et heure style valeur 112 convertit en ISO yyyymmdd format. Le style valeur 108 convertit en hh:mi:ss format. Évidemment, les deux comportent 8 caractères, c'est pourquoi le data_type est CHAR(8) pour les deux.

La séquence de caractères combinée résultante est au format yyyymmdd hh:mi:ss puis converti en un datetime .