sql - obtener - Reste un día de la fecha y hora
obtener hora sql server (9)
Aparentemente puede restar la cantidad de días que desea de una fecha y hora.
SELECT GETDATE() - 1
2016-12-25 15:24:50.403
Tengo una consulta para recuperar la diferencia de fecha entre 2 datetime como:
SELECT DATEDIFF(DAY, @CreatedDate , GETDATE())
Ex :
SELECT DATEDIFF(DAY, ''2013-03-13 00:00:00.000'' , GETDATE())
Necesito que una consulta funcione así, que restará un día del día creado:
SELECT DATEDIFF(DAY, **@CreatedDate- 1** , GETDATE())
Esto debería funcionar.
select DATEADD(day, -1, convert(date, GETDATE()))
No estoy seguro de lo que estás tratando de hacer exactamente, pero creo que esta función SQL te ayudará a:
SELECT DATEADD(day,-1,''2013-04-01 16:25:00.250'')
Lo anterior le dará 2013-03-31 16:25:00.250
.
Te lleva exactamente un día atrás y funciona en cualquier formato estándar de fecha y hora o fecha.
Intente ejecutar este comando y vea si le proporciona lo que está buscando:
SELECT DATEADD(day,-1,@CreatedDate)
Para ser honesto, solo uso:
select convert(nvarchar(max), GETDATE(), 112)
que da YYYYMMDD
y menos uno de ella.
O más correctamente
select convert(nvarchar(max), GETDATE(), 112) - 1
para la fecha de ayer.
Reemplace Getdate()
con su valor OrderDate
select convert(nvarchar (max),OrderDate,112)-1 AS SubtractDate FROM Orders
Deberías hacerlo.
Para simplemente restar un día de la fecha de hoy:
Select DATEADD(day,-1,GETDATE())
(la publicación original usó -7 y fue incorrecta)
Prueba esto
SELECT DATEDIFF(DAY, DATEADD(day, -1, ''2013-03-13 00:00:00.000''), GETDATE())
O
SELECT DATEDIFF(DAY, DATEADD(day, -1, @CreatedDate), GETDATE())
Prueba esto, puede que esto te ayude
SELECT DATEDIFF(DAY, DATEADD(DAY,-1,''2013-03-13 00:00:00.000'') , GETDATE())
Puedes probar esto.
Timestamp = 2008-11-11 13: 23: 44.657;
SELECT DATE_SUB(OrderDate,INTERVAL 1 DAY) AS SubtractDate FROM Orders
salida: 2008-11-10 13: 23: 44.657
Espero que ayude a resolver tu problema.
SELECT DATEDIFF (
DAY,
DATEDIFF(DAY, @CreatedDate, -1),
GETDATE())