sql >> Database >  >> RDS >> Database

30 dagen van een datum aftrekken in T-SQL

Probleem:

U wilt de datum 30 dagen voor een bepaalde datum in T-SQL ontvangen.

Voorbeeld:

Onze database heeft een tabel met de naam Computer met gegevens in de kolommen Id , Name , en PurchaseDate .

Id Naam Aankoopdatum
1 Sony GX1000 2019-01-20
2 Samsung LX2000 2019-04-15
3 Dell K80 2019-08-30

Laten we de naam van elke computer krijgen en de datum 30 dagen voor de aankoopdatum.

Oplossing:

We zullen de functie DATEADD() gebruiken om een ​​bepaald aantal dagen van een datum af te trekken.

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

Dit is het resultaat van de zoekopdracht:

Naam Vooraankoopdatum
Sony GX1000 21-12-2018
Samsung LX2000 2019-03-16
Dell K80 31-07-2019

Discussie:

Als u datums of tijden in SQL Server wilt aftrekken, gebruikt u de DATEADD() functie. Er zijn drie argumenten nodig. Het eerste argument is de datum/tijd-eenheid – in ons voorbeeld specificeren we de dag eenheid.

Het volgende is de datum- of tijdseenheid waarde . In ons voorbeeld is dit -30 , omdat we 30 dagen verwijderd zijn van de huidige datum. Onthoud dat de min staat voor aftrekken de waarde; zonder dit teken voegt u toe aan de opgegeven datum.

Het laatste argument is de datum waarop we actief zijn; dit kan een datum/tijd/datum/tijd-kolom zijn of een andere uitdrukking die een datum of tijd retourneert. In ons voorbeeld gebruiken we PurchaseDate , een date kolom.

De functie retourneert een gewijzigde datum. In ons voorbeeld is de query voor de computer met de naam 'Dell K80' geeft een nieuwe datum terug in de BeforePurchaseDate kolom. De originele datum '2019-08-30' is gewijzigd in de datum van 30 dagen terug:'2018-07-31' .

U kunt de DATEADD() . gebruiken functie voor alle datum- en tijdgegevenstypen.


  1. Geautomatiseerd testen van het upgradeproces voor PXC/MariaDB Galera Cluster

  2. Django-migratiefout:kolom bestaat niet

  3. Hoe Round() werkt in SQLite

  4. Hoe u een gebruiksvriendelijke database voor uw bedrijf kiest