web-dev-qa-db-fra.com

Getdate (), -1 jour

Je ne comprends pas pourquoi, mais de toute façon cette requête ne fonctionne pas ... Je veux prendre la date du système -1 jour où la date système est plus petite d'un jour que la date actuelle.

WHERE
    a.SEND_Date >= dateadd(DD,-1,(CAST(getdate() as date) as datetime)) 
5
N2hvits

Le CAST dépend du type de date dont vous avez besoin . Si vous avez seulement besoin de comparer des dates, vous pouvez uniquement utiliser:

dateadd(DD, -1, cast(getdate() as date))

Si vous avez besoin de comparer avec la date et l'heure, vous pouvez utiliser:

dateadd(DD,-1,getdate())

Cela vous donnera date-heure comme ceci: 2016-01-11 10:43:57.443

9
Yahel

La réponse cochée a toujours le temps (00:00:00), dans ma version quand même. Pour obtenir uniquement la date, utilisez: Sélectionnez Convertir (date, date/heure (jour, -1, getdate ()))

Les deux ont le même poids, 0,001 seconde

0
user3806549

Il manque juste un CAST:

dateadd(DD,-1,(CAST(getdate() as date) as datetime))

deux fois "comme" (comme date + comme date/heure) mais une seule fois "CAST" => quelque chose de faux - devrait être:

dateadd(DD,-1,CAST(CAST(getdate() as date) as datetime))
0
rf0806