sql >> Databasteknik >  >> RDS >> Database

Hur man lägger till dagar till ett datum i T-SQL

Problem:

Du vill lägga till ett givet antal dagar till ett datum i T-SQL.

Exempel:

Vår databas har en tabell som heter Flight med data i kolumnerna Code och DepartureDate .

Kod Avgångsdatum
LT2030 2019-02-20
GH1100 2019-03-01
SR5467 2019-12-30

Låt oss ändra avresedatumet för alla flyg och lägga till två dagar till det aktuella avresedatumet.

Lösning:

Vi kommer att använda DATEADD()-funktionen för att ange tidsenhet som ska läggas till, definiera hur mycket som ska läggas till och välja datum som ska ändras. Ta en titt på frågan:

	SELECT Code,
		  DATEADD(day, 2, DepartureDate)
		    AS ChangedDepartureDate 
      FROM Flight;

Här är resultatet:

Kod Ändrat avgångsdatum
LT2030 2019-02-22
GH1100 2019-03-03
SR5467 2020-01-01

Diskussion:

För att ändra ett datum och/eller tid genom att lägga till ett specifikt nummer för en vald tidsenhet, använd SQL Servers DATEADD()-funktion. Den här funktionen fungerar på datatyperna datum, tid eller datum och tid. Det krävs tre argument:

  1. Önskad enhet för datum/tid att lägga till. I vårt exempel är det dag; vi vill lägga till dagar till datumet.
  2. Hur många enheter som ska läggas till. I vårt exempel är detta 2; vi vill lägga till 2 dagar till det befintliga datumet.
  3. En kolumn som innehåller datum/tid/datumtid som vi vill ändra. (I vårt exempel använder vi kolumnen DepartureDate.) Detta argument kan också vara ett uttryck som returnerar ett datum/tid/datumtid.

Funktionen DATEADD() returnerar ett nytt datum. I vårt exempel returneras det nya datumet som ChangedDepartureDate kolumn. För flygkoden "LT2030" är datumet "2019-02-20" nu "2019-02-22".

Funktionen DATEADD() kan använda datum- och tidsenheter som year , quarter , month , dayofyear , day , week , weekday , hour , minute , second , etc. Du kan lära dig mer i SQL Server-dokumentationen.


  1. Ansluter .NET på Linux till en ODBC-datakälla

  2. Inbäddade PostgreSQL för Java JUnit-tester

  3. Analys av MS SQL Server för de som ser den för första gången

  4. Hybrid OLTP/Analytics Databas Workloads i Galera Cluster med asynkrona slavar