Problème :
Vous souhaitez afficher la date d'hier (sans l'heure) dans une base de données SQL Server.
Solution :
SELECT DATEADD(day, -1, CAST(GETDATE() AS date)) AS YesterdayDate;
En supposant qu'aujourd'hui soit le 2020-09-24, le résultat est :
date_hier |
---|
2020-09-23 |
Discussion :
Pour obtenir la date d'hier, vous devez soustraire un jour à la date d'aujourd'hui. Utilisez GETDATE()
pour obtenir la date d'aujourd'hui (le type est datetime
) et castez-le en date
. Dans SQL Server, vous pouvez soustraire ou ajouter n'importe quel nombre de jours à l'aide de DATEADD()
fonction.
Le DATEADD()
la fonction prend trois arguments :datepart
, number
, et date
. Ici, la valeur de datepart
est day
, car l'unité de temps que vous souhaitez soustraire est le jour. Le deuxième argument est -1 (vous soustrayez 1 jour, ce qui revient à ajouter -1 jour). Le troisième argument est la date d'aujourd'hui, la date à partir de laquelle vous souhaitez soustraire.
Bien sûr, vous pouvez revenir en arrière par n'importe quel intervalle de temps tout aussi facilement. Voici un exemple :
SELECT DATEADD(month, -5, CAST(GETDATE() AS date));
Un intervalle de temps peut également être added
à une date. Donc, voici un moyen si vous voulez obtenir la date de demain :
SELECT DATEADD(day, 1, CAST(GETDATE() AS date)) AS TomorrowDate;