web-dev-qa-db-fra.com

Soustraire un jour de date-heure

J'ai une requête pour récupérer date diff entre 2 date/heure comme:

SELECT DATEDIFF(DAY, @CreatedDate , GETDATE())

Ex :

SELECT DATEDIFF(DAY, '2013-03-13 00:00:00.000' , GETDATE())

J'ai besoin d'un travail de requête comme celui-ci qui soustrait un jour du jour créé:

SELECT DATEDIFF(DAY, **@CreatedDate- 1** , GETDATE())
94
James

Essaye ça

SELECT DATEDIFF(DAY,  DATEADD(day, -1, '2013-03-13 00:00:00.000'), GETDATE())

OR

SELECT DATEDIFF(DAY,  DATEADD(day, -1, @CreatedDate), GETDATE())
111
yogi

Je ne suis pas certain de ce que vous essayez précisément de faire, mais je pense que cette fonction SQL vous aidera:

SELECT DATEADD(day,-1,'2013-04-01 16:25:00.250')

Ce qui précède vous donnera 2013-03-31 16:25:00.250.

Il vous ramène exactement un jour et fonctionne avec n'importe quel format date-heure ou standard.

Essayez d’exécuter cette commande et voyez si elle vous donne ce que vous recherchez:

SELECT DATEADD(day,-1,@CreatedDate)
36
Chris

Pour soustraire simplement un jour de la date d'aujourd'hui:

Select DATEADD(day,-1,GETDATE())

(poste d'origine utilisé -7 et était incorrect)

31
FoxDeploy

Apparemment, vous pouvez soustraire le nombre de jours que vous voulez d'un datetime.

SELECT GETDATE() - 1

2016-12-25 15:24:50.403
20
Philip Rego

Cela devrait marcher.

select DATEADD(day, -1, convert(date, GETDATE()))
5
samithagun

Essayez ceci, cela peut vous aider

SELECT DATEDIFF(DAY, DATEADD(DAY,-1,'2013-03-13 00:00:00.000') , GETDATE())
1
Vijay Singh Rana

Pour être honnête, je viens d'utiliser:

select convert(nvarchar(max), GETDATE(), 112)

ce qui donne YYYYMMDD et moins un.

Ou plus correctement

select convert(nvarchar(max), GETDATE(), 112) - 1 

pour la date d'hier.

Remplacez Getdate() par votre valeur OrderDate

select convert(nvarchar (max),OrderDate,112)-1 AS SubtractDate FROM Orders

devrait le faire.

1
meekon5
SELECT DATEDIFF (
    DAY, 
    DATEDIFF(DAY, @CreatedDate, -1), 
    GETDATE())
1
Daniel Imms