2010-05-17 7 views

Respuesta

15
SELECT DATEADD(hh, 24 * 2 + 18, DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 0)) 

Este trunca la fecha actual y añade 2 días y 18 horas a la misma (24 * 2 + 18).

Una posible variación:

SELECT DATEADD(hh, 18, DATEADD(dd, DATEDIFF(dd, -2, GETDATE()), 0)) 
+0

Impresionante, muchas gracias. Funciona perfectamente. –

1
Select DateAdd(hour, 18, DateAdd(day, 2, cast(floor(cast(getdate() as float))as datetime))) 
1

que tenía que hacer algo similar, crear un procedimiento para ejecutar desde un momento determinado del día anterior a una hora determinada del día actual Esto es lo que hizo establecer la fecha de inicio a las 16:30 del día anterior, básicamente reste las partes que no desea volver a poner en 0 y luego agrega el valor que desea que sea.

-- Set Start Date to previous day and set start time to 16:30.00.000 

SET @StartDate = GetDate() 
SET @StartDate = DateAdd(dd,- 1, @StartDate) 
SET @StartDate = DateAdd(hh,- (DatePart(hh,@StartDate))+16, @StartDate) 
SET @StartDate = DateAdd(mi,- (DatePart(mi,@StartDate))+30, @StartDate) 
SET @StartDate = DateAdd(ss,- (DatePart(ss,@StartDate)), @StartDate) 
SET @StartDate = DateAdd(ms,- (DatePart(ms,@StartDate)), @StartDate) 

Espero que esto ayude a alguien.

Cuestiones relacionadas