Database
 sql >> Base de données >  >> RDS >> Database

Comment soustraire 30 jours d'une date dans T-SQL

Problème :

Vous souhaitez obtenir la date 30 jours avant une date donnée dans T-SQL.

Exemple :

Notre base de données a une table nommée Computer avec des données dans les colonnes Id , Name , et PurchaseDate .

Identifiant Nom Date d'achat
1 Sony GX1000 2019-01-20
2 Samsung LX2000 2019-04-15
3 Dell K80 2019-08-30

Obtenons le nom de chaque ordinateur et la date 30 jours avant sa date d'achat.

Solution :

Nous allons utiliser la fonction DATEADD() pour soustraire un nombre donné de jours d'une date.

	SELECT Name,
		  DATEADD(day, -30, PurchaseDate)
		    AS BeforePurchaseDate;
      FROM Computer;

Voici le résultat de la requête :

Nom Avant la date d'achat
Sony GX1000 2018-12-21
Samsung LX2000 2019-03-16
Dell K80 2019-07-31

Discussion :

Si vous souhaitez soustraire des dates ou des heures dans SQL Server, utilisez le DATEADD() une fonction. Il faut trois arguments. Le premier argument est l'unité de date/heure - dans notre exemple, nous spécifions le jour unité.

Vient ensuite la valeur de l'unité de date ou d'heure . Dans notre exemple, il s'agit de -30 , car nous retirons 30 jours de la date actuelle. N'oubliez pas que le moins indique soustraction la valeur; sans ce signe, vous ajoutez à la date donnée.

Le dernier argument est la date à laquelle nous opérons ; il peut s'agir d'une colonne date/heure/dateheure ou de toute expression renvoyant une date ou une heure. Dans notre exemple, nous utilisons PurchaseDate , une date colonne.

La fonction renvoie une date modifiée. Dans notre exemple, la requête pour l'ordinateur nommé 'Dell K80' renvoie une nouvelle date dans le BeforePurchaseDate colonne. La date d'origine '2019-08-30' est remplacé par la date de 30 jours :'2018-07-31' .

Vous pouvez utiliser le DATEADD() fonction pour tous les types de données de date et d'heure.