Database
 sql >> Datenbank >  >> RDS >> Database

So subtrahieren Sie 30 Tage von einem Datum in T-SQL

Problem:

Sie möchten das Datum 30 Tage vor einem bestimmten Datum in T-SQL abrufen.

Beispiel:

Unsere Datenbank hat eine Tabelle namens Computer mit Daten in den Spalten Id , Name und PurchaseDate .

ID Name Kaufdatum
1 Sony GX1000 2019-01-20
2 Samsung LX2000 2019-04-15
3 Dell K80 2019-08-30

Lassen Sie uns den Namen jedes Computers und das Datum vor vor 30 Tagen abrufen sein Kaufdatum.

Lösung:

Wir verwenden die Funktion DATEADD(), um eine bestimmte Anzahl von Tagen von einem Datum abzuziehen.

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

Hier ist das Ergebnis der Abfrage:

Name Vor dem Kaufdatum
Sony GX1000 21.12.2018
Samsung LX2000 2019-03-16
Dell K80 2019-07-31

Diskussion:

Wenn Sie Datums- oder Zeitangaben in SQL Server subtrahieren möchten, verwenden Sie DATEADD() Funktion. Es braucht drei Argumente. Das erste Argument ist die Datums-/Zeiteinheit – in unserem Beispiel geben wir den Tag an Einheit.

Als nächstes kommt der Wert der Datums- oder Zeiteinheit . In unserem Beispiel ist dies -30 , weil wir 30 Tage vom aktuellen Datum wegnehmen. Denken Sie daran, dass das Minus Subtrahieren bedeutet der Wert; Ohne dieses Zeichen addieren Sie das angegebene Datum.

Das letzte Argument ist das Datum, an dem wir operieren; Dies könnte eine date/time/datetime-Spalte oder ein beliebiger Ausdruck sein, der ein Datum oder eine Uhrzeit zurückgibt. In unserem Beispiel verwenden wir PurchaseDate , ein date Säule.

Die Funktion gibt ein geändertes Datum zurück. In unserem Beispiel die Abfrage für den Computer mit dem Namen 'Dell K80' gibt ein neues Datum im BeforePurchaseDate zurück Säule. Das ursprüngliche Datum '2019-08-30' wird auf das Datum vor 30 Tagen geändert:'2018-07-31' .

Sie können das DATEADD() verwenden Funktion für alle Datums- und Zeitdatentypen.