sql >> Databasteknik >  >> RDS >> Database

Hur man subtraherar 30 dagar från ett datum i T-SQL

Problem:

Du vill få datumet 30 dagar före ett givet datum i T-SQL.

Exempel:

Vår databas har en tabell som heter Computer med data i kolumnerna Id , Name och PurchaseDate .

Id Namn Köpdatum
1 Sony GX1000 2019-01-20
2 Samsung LX2000 2019-04-15
3 Dell K80 2019-08-30

Låt oss få namnet på varje dator och datumet 30 dagar före dess inköpsdatum.

Lösning:

Vi kommer att använda DATEADD()-funktionen för att subtrahera ett givet antal dagar från ett datum.

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

Här är resultatet av frågan:

Namn FörePurchaseDate
Sony GX1000 2018-12-21
Samsung LX2000 2019-03-16
Dell K80 2019-07-31

Diskussion:

Om du vill subtrahera datum eller tider i SQL Server, använd DATEADD() fungera. Det krävs tre argument. Det första argumentet är datum/tidsenheten – i vårt exempel anger vi dagen enhet.

Nästa är datumet eller tidsenhetens värde . I vårt exempel är detta -30 , eftersom vi tar 30 dagar från det aktuella datumet. Kom ihåg att minus anger subtrahera värdet; utan detta tecken lägger du till det givna datumet.

Det sista argumentet är datumet vi opererar på; detta kan vara en kolumn för datum/tid/datumtid eller något uttryck som returnerar ett datum eller en tid. I vårt exempel använder vi PurchaseDate , ett date kolumn.

Funktionen returnerar ett ändrat datum. I vårt exempel, frågan för datorn med namnet 'Dell K80' returnerar ett nytt datum i BeforePurchaseDate kolumn. Det ursprungliga datumet '2019-08-30' ändras till datumet från 30 dagar tillbaka:'2018-07-31' .

Du kan använda DATEADD() funktion för alla datum- och tidsdatatyper.


  1. Python och SQLite varningar

  2. Skapa nya tabeller i IRI Workbench

  3. Exportera data till Excel från Oracle Table med PL SQL

  4. Effektiv övervakning av MySQL med SCUMM Dashboards:Del ett