web-dev-qa-db-fra.com

Comment ajouter du temps à DateTime en SQL

J'essaie de ajouter l'heure personnalisée à la date et l'heure dans SQL Server 2008 R2 .

Voici ce que j'ai essayé. 

SELECT DATEADD(hh, 03, DATEADD(mi, 30, DATEADD(ss, 00, DATEDIFF(dd, 0,GETDATE())))) as Customtime

En utilisant la requête ci-dessus, je suis capable d'y parvenir. 

Mais existe-t-il déjà une méthode abrégée permettant d'ajouter du temps personnalisé à datetime?

Merci d'avance.

24
Praveen

Essaye ça 

SELECT DATEADD(day, DATEDIFF(day, 0, GETDATE()), '03:30:00')
35

Pour moi, ce code est plus explicite:

CAST(@SomeDate AS datetime) + CAST(@SomeTime AS datetime)
19
Misha

Essaye ça: 

SELECT  DATEDIFF(dd, 0,GETDATE()) + CONVERT(DATETIME,'03:30:00.000')
14
Andrey Gordeev

Ou essayez une autre méthode en utilisant le type de données Time:

DECLARE @MyTime TIME = '03:30:00', @MyDay DATETIME = CAST(GETDATE() AS DATE)

SELECT @MyDay+@MyTime
5
Steve D

Essaye ça

SELECT DATEADD(MINUTE,HOW_MANY_MINUTES,TO_WHICH_TIME)

Ici MINUTE est constant, ce qui indique qu’ils vont ajouter/soustraire des minutes du spécificateur TO_WHICH_TIME. HOW_MANY_MINUTES correspond à l'intervalle pendant lequel nous devons ajouter des minutes. S'il est spécifié négatif, le temps sera soustrait, sinon serait ajouté au spécificateur TO_WHICH_TIME et TO_WHICH_TIME correspond à l'heure à laquelle vous ajoutez MINUTE.

J'espère que cela t'aides.

4
Mohan

Tu peux faire:

SELECT GETDATE()+'03:30:00'
1
Neket

Ce qui suit est simple et fonctionne sur SQL Server 2008 (SP3) et les versions ultérieures:

PRINT @@VERSION
PRINT GETDATE()
PRINT GETDATE() + '01:00:00'
PRINT CONVERT(datetime,FLOOR(CONVERT(float,GETDATE()))) + '01:00:00'

Avec sortie:

Microsoft SQL Server 2008 (SP3) - 10.0.5500.0 (X64) 
Mar 15 2017  6:17PM
Mar 15 2017  7:17PM
Mar 15 2017  1:00AM
0
onemorecupofcoffee