SQLShack (Dansk)

Denne artikel udforsker DATEADD SQL-funktionen og dens anvendelse scenarier med forskellige eksempler.

Normalt arbejder vi med datadatatype i SQL Server. Vi skal også manipulere med datoer. I min tidligere artikel DATEPART SQL FUNCTION undersøgte vi at hente specifik del fra datoen som dag, år, måned, kvartal, dag i året.

Vi kan bruge funktionen SQL SERVER DATEADD til at tilføje eller trække en bestemt periode fra a giver en dato.

Syntaks

DATEADD (datadel, nummer, dato)

  • Datadel: Det specificerer den del af den dato, hvor vi vil tilføje eller trække et specifikt tidsinterval. Det kan have værdier som år, måned, dag og uge. Vi vil udforske mere i dette i eksempelsektionen
  • Antal: Det er det nummer, som vi vil øge eller formindske datoen for. Det skal være et heltal
  • Dato: Vi kan angive datoen her. I denne dato vil vi tilføje et specificeret nummer på datadelen

Antag, at vi vil tilføje ti dage til den aktuelle dato. I dette eksempel ville variablerne være

  • Datapart-værdi: Dag
  • Antal: 5
  • Dato: Getdate () – Aktuel dato

Udforsk funktionen SQL SERVER DATEADD med eksempler

Datatyper i SQL SERVER DATEADD-funktionen

Vi kan bruge følgende datatype i datoudtryk.

  • dato
  • DateTime
  • datetimeoffset
  • datetime2
  • smalldatetime
  • tid

I den følgende forespørgsel erklærede vi en variabel @dato med en datetime2 datatype. Vi kan bruge DATEADD SQL-funktionen i henhold til følgende forespørgsel.

Brug af SQL SERVER DATEADD-funktionen til at hente poster fra en tabel i det angivne datointerval

Vi kan bruge DATEADD SQL-funktionen til at hente poster fra en tabel i en periode. I den følgende forespørgsel angav vi en dato med parameteren @Startdate. Vi ønsker at hente poster fra ordretabellen. Vi skal hente poster mellem @StartDate og @Enddate (tilføj 1 time i startdatoen).

Vi får følgende output.

Brug af SQL SERVER DATEADD-funktionen til at hente dato- eller tidsforskel

Vi kan bruge DATEADD SQL-funktionen til at få tidsforskel mellem startdato og slutdato. Mange gange vil vi bruge SQL SERVER DATEADD-funktionen til at få datoforskel. For eksempel vil vi vide, hvor lang tid det tog at gennemføre en ordre, eller hvor lang tid det tog at nå hjemmefra til kontor.

Udfør følgende forespørgsel for at få forskellen mellem starttid og sluttid. Vi bruger DATEADD SQL-funktionen sammen med DATEDIFF SQL-funktionen.

Det giver den forløbne tid i minutter. Vi specificerede værdi 0 i DateADD SQL-funktionen. Det tager datoværdi 1900-01-01 00: 00: 00.000

Vi kan bruge SQL Convert datoformat til at repræsentere dette i HH: MM: SS-format.

Det giver tidsforskellen i HH: MM: SS-format som vist i det følgende billede.

Angiv resultatet af SQL SERVER DATEADD som en ny kolonne

Vi kan bruge SQL SERVER DATEADD-funktionen til at få en ny kolonne efter tilføjelse af den krævede datoværdi. I den følgende forespørgsel vil vi tilføje to dage i startdatoen og repræsentere dette som en ny kolonne.

Skalar underforespørgsler og skalære funktioner i DATEADD SQL-funktionen

Vi kan også bruge SQL SERVER DATEADD-funktionen med skalære underforespørgsler og skalære funktioner. I den følgende forespørgsel ønsker vi at tilføje antal dage i den maksimale datoværdi for LastEditedWhen i tabellen Salg. Ordrer.

Den første underforespørgsel giver tallet 16496, og den anden underforespørgsel giver en dato. Vi brugte SQL SERVER DATEADD-funktionen til at tilføje antal dage, og vi får følgende output.

Numeriske udtryk i SQL SERVER DATEADD-funktion

Vi kan også bruge numeriske udtryk i SQL SERVER DATEADD-funktionen. I den følgende forespørgsel bruger vi et numerisk udtryk til at beregne antallet og give os et output.

1
2
3

VÆLG GETDATE () SOM CurrentDate,
DATEADD (måned, – (12/6), GETDATE ()) AS ModifiedDate;

Brug af DATEADD med Rank-funktionen

Vi kan også bruge DATEADD SQL-funktionen i en rangfunktion. Vi kan bruge det til nummerargumentet. I den følgende forespørgsel kan du se funktionen Row_Number () til at bruge nummerparameter og værdierne som datoparameter.

Konklusion

I denne artikel undersøgte vi forskellige anvendelser og eksempler på DATEADD SQL-funktionen. Det giver os mulighed for at tilføje eller trække datadelværdier fra den angivne dato. Jeg håber du kan lide denne artikel. Giv gerne feedback i kommentarerne nedenfor.

  • Forfatter
  • Seneste indlæg
Som MCSA-certificeret og Microsoft-certificeret træner i Gurgaon, Indien, med 13 års erfaring, arbejder Rajendra for en række store virksomheder med fokus på ydeevneoptimering, overvågning, høj tilgængelighed og katastrofegendannelsesstrategier og implementering. Han er forfatter til hundredvis af autoritative artikler om SQL Server, Azure, MySQL, Linux, Power BI, Performance tuning, AWS / Amazon RDS, Git og relaterede teknologier, der er blevet set af over 10m læsere til dato.
Han er skaberen af en af de største gratis online samlinger af artikler om et enkelt emne med sin 50-dels serie om SQL Server Always On Availability Groups. Baseret på hans bidrag til SQL Server-samfundet er han blevet anerkendt med forskellige priser, herunder den prestigefyldte “Årets bedste forfatter” kontinuerligt i 2020 og 2021 hos SQLShack.
Raj er altid interesseret i nye udfordringer, så hvis du har brug for rådgivning hjælp til ethvert emne, der er dækket af hans skrifter, han kan nås på [email protected]
Se alle indlæg af Rajendra Gupta

Seneste indlæg af Rajendra Gupta (se alle)
  • Udfører mindre og større versionopgraderinger til AWS RDS SQL Server – 29. januar 2021
  • Implementering af AWS RDS PostgreSQL-forekomster – 27. januar 2021
  • Migrering af lokale SQL-databaser til AWS RDS SQL Server ved hjælp af AWS DMS – 25. januar , 2021

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *