2017-10-11 1 views

Répondre

3

Vous cherchez quelque chose comme:

DECLARE @DATE AS DATE 
DECLARE @TIME AS NVARCHAR(5) 

SET @DATE = GETDATE() /*2017-10-11*/ 
SET @TIME = '08:00' 

SELECT CONVERT(DATETIME, CONVERT(VARCHAR, @DATE) + ' '+ CONVERT(VARCHAR, @TIME)) 

Sortie:

2017-10-11 08:00:00.000 
+0

votre code fonctionne mais la date est erronée. l'heure est 10 - 11 - 2017 08:00 et non 11-10-2017 – bircastri

+0

@bircastri whts mal dans ci-dessus? –

2

Cela fonctionnerait:

DECLARE @DATE AS DATE; 
DECLARE @TIME AS NVARCHAR(5); 
SET @DATE = GETDATE(); 
SET @TIME = '08:00'; 

SELECT CONCAT(@DATE, ' ', @TIME); 

Ou si vous le voulez comme datetime datatype,

SELECT CAST(CONCAT(@DATE, ' ', @TIME) AS DATETIME) 
+0

Puis-je utiliser dans une instruction select? –

+0

Oui, ou vous pouvez le déclarer comme une variable et l'utiliser à partir de là – dbajtr

+1

vous utilisez DATE donc getdate() est tronqué, je l'obtiens maintenant, ignorez s'il vous plaît –

0

Voici une solution whitout chaîne concaténation:

DECLARE @TIME AS NVARCHAR(5) 
DECLARE @MINUTES AS INT 
DECLARE @DATETIME AS DATETIME = CONVERT(DATE, GETDATE()) /* 2017-10-11 */ 

SET @TIME = '08:00' 
SET @MINUTES = DATEDIFF(MI, 
         0, 
         @TIME) /* Get number of minutes from @TIME */ 
SET @DATETIME = DATEADD(MI, 
         @MINUTES, 
         CONVERT(DATETIME, @DATETIME)) /* Add the minutes to @DATETIME */ 

SELECT @DATETIME