SQLShack (Svenska)

Denna artikel utforskar DATEADD SQL-funktionen och dess användning scenarier med olika exempel.

Vanligtvis arbetar vi med datumdatatyp i SQL Server. Vi måste göra manipuleringar med datum också. I min tidigare artikel DATEPART SQL FUNCTION undersökte vi att hämta specifik del från datumet, såsom dag, år, månad, kvartal, dag på året.

Vi kan använda funktionen SQL SERVER DATEADD för att lägga till eller subtrahera specifik period från a ger ett datum.

Syntax

DATEADD (datadel, nummer, datum)

  • Datadel: Den specificerar den del av datumet där vi vill lägga till eller subtrahera specifikt tidsintervall. Det kan ha värden som år, månad, dag och vecka. Vi kommer att utforska mer i detta i exempelavsnittet
  • Antal: Det är det nummer som vi vill öka eller minska datumet med. Det ska vara ett heltal
  • Datum: Vi kan ange datum här. I det här datumet vill vi lägga till ett angivet nummer i datadelen

Antag att vi vill lägga till tio dagar till det aktuella datumet. I det här exemplet skulle variablerna vara

  • Datadelvärde: Dag
  • Antal: 5
  • Datum: Getdate () – Aktuellt datum

Utforska funktionen SQL SERVER DATEADD med exempel

Datatyper i SQL SERVER DATEADD-funktionen

Vi kan använda följande datatyp i datumuttryck.

  • datum
  • DateTime
  • datetimeoffset
  • datetime2
  • smalldatetime
  • tid

I följande fråga förklarade vi en variabel @date med en datetime2-datatyp. Vi kan använda DATEADD SQL-funktionen enligt följande fråga.

Använda SQL SERVER DATEADD-funktionen för att få poster från en tabell i angivet datumintervall

Vi kan använda DATEADD SQL-funktionen för att hämta poster från en tabell under en period. I följande fråga angav vi ett datum med parametern @ Startdatum. Vi vill hämta poster från beställningstabellen. Vi måste hämta poster mellan @StartDate och @Enddate (lägg till 1 timme i startdatum).

Vi får följande utdata.

Använda SQL SERVER DATEADD-funktionen för att få datum eller tidsskillnad

Vi kan använda DATEADD SQL-funktionen för att få tidsskillnad mellan startdatum och slutdatum. Många gånger vill vi använda SQL SERVER DATEADD-funktionen för att få datumskillnad. Vi vill till exempel veta hur lång tid det tog att slutföra en beställning eller hur lång tid det tog att nå hemifrån till kontor.

Utför följande fråga för att få skillnaden mellan starttid och sluttid. Vi använder DATEADD SQL-funktionen tillsammans med DATEDIFF SQL-funktionen.

Det ger förfluten tid i minuter. Vi angav värde 0 i DateADD SQL-funktionen. Det tar datumvärde 1900-01-01 00: 00: 00.000

Vi kan använda SQL Convert datumformat för att representera detta i HH: MM: SS-format.

Det ger tidsskillnaden i HH: MM: SS-format som visas i följande bild.

Ange resultatet för SQL SERVER DATEADD som en ny kolumn

Vi kan använda SQL SERVER DATEADD-funktionen för att få en ny kolumn efter att ha lagt till önskat datumvärde. I följande fråga vill vi lägga till två dagar i startdatumet och representera detta som en ny kolumn.

Scalar underfrågor och skalarfunktioner i DATEADD SQL-funktionen

Vi kan också använda SQL SERVER DATEADD-funktionen med skalära underfrågor och skalarfunktioner. I följande fråga vill vi lägga till antalet dagar i maxdatavärdet för LastEditedWhen i tabellen Sales.orders.

Den första underfrågan ger numret 16496 och den andra underfrågan ger ett datum. Vi använde SQL SERVER DATEADD-funktionen för att lägga till antal dagar och vi får följande utdata.

Numeriska uttryck i SQL SERVER DATEADD-funktion

Vi kan också använda numeriska uttryck i SQL SERVER DATEADD-funktionen. I följande fråga använder vi ett numeriskt uttryck för att beräkna antalet och ge oss en utdata.

1
2
3

VÄLJ GETDATE () SOM CurrentDate,
DATEADD (månad, – (12/6), GETDATE ()) AS ModifiedDate;

Använda DATEADD med Rank-funktionen

Vi kan också använda DATEADD SQL-funktionen i en rankningsfunktion. Vi kan använda den för talargumentet. I följande fråga kan du se funktionen Row_Number () för att använda nummerparametern och värdena som datumparameter.

Slutsats

I den här artikeln undersökte vi olika användningsområden och exempel på DATEADD SQL-funktionen. Det låter oss lägga till eller subtrahera datadelvärden från det angivna datumet. Jag hoppas att du gillar den här artikeln. Lämna gärna feedback i kommentarerna nedan.

  • Författare
  • Senaste inlägg
Som MCSA-certifierad och Microsoft Certified Trainer i Gurgaon, Indien, med 13 års erfarenhet, arbetar Rajendra för en mängd stora företag med fokus på prestandaoptimering, övervakning, hög tillgänglighet och katastrofåterställningsstrategier och implementering. Han är författare till hundratals auktoritativa artiklar om SQL Server, Azure, MySQL, Linux, Power BI, Performance tuning, AWS / Amazon RDS, Git och relaterad teknik som hittills har visats av över 10 meter läsare.
Han är skaparen av en av de största gratis onlinesamlingarna av artiklar om ett enda ämne, med sin 50-delarserie om SQL Server Always On Availability Groups. Baserat på sitt bidrag till SQL Server-communityn har han fått utmärkelser med olika utmärkelser, inklusive den prestigefyllda ”Årets bästa författare” kontinuerligt 2020 och 2021 på SQLShack.
Raj är alltid intresserad av nya utmaningar så om du behöver rådgivning hjälp om alla ämnen som behandlas i hans skrifter, han kan nås på [email protected]
Visa alla inlägg av Rajendra Gupta

Senaste inlägg av Rajendra Gupta (se alla)
  • Utför mindre och större versionuppgraderingar för AWS RDS SQL Server – 29 januari 2021
  • Distribuera AWS RDS PostgreSQL-instanser – 27 januari 2021
  • Migrera dina lokala SQL-databaser till AWS RDS SQL Server med AWS DMS – 25 januari 2021

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *