SQLShack (Norsk)

Denne artikkelen utforsker DATEADD SQL-funksjonen og dens bruk scenarier med forskjellige eksempler.

Vanligvis jobber vi med datatype i SQL Server. Vi må gjøre manipulasjoner med datoer også. I min forrige artikkel DATEPART SQL FUNCTION undersøkte vi å hente spesifikk del fra datoen som dag, år, måned, kvartal, dag i året.

Vi kan bruke SQL SERVER DATEADD-funksjonen til å legge til eller trekke spesifikk periode fra a gir en dato.

Syntaks

DATEADD (datepart, number, date)

  • Datapart: Den spesifiserer den delen av datoen der vi vil legge til eller trekke fra spesifikt tidsintervall. Det kan ha verdier som år, måned, dag og uke. Vi vil utforske mer i dette i eksempeldelen
  • Antall: Det er tallet vi vil øke eller redusere datoen for. Det skal være et helt tall
  • Dato: Vi kan spesifisere datoen her. I denne datoen vil vi legge til et spesifisert nummer på datadelen

Anta at vi vil legge ti dager til den nåværende datoen. I dette eksemplet vil variablene være

  • Datadelverdi: Dag
  • Antall: 5
  • Dato: Getdate () – Gjeldende dato

Utforsk SQL SERVER DATEADD-funksjonen med eksempler

Datatyper i SQL SERVER DATEADD-funksjonen

Vi kan bruke følgende datatype i datouttrykk.

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

I det følgende spørsmålet erklærte vi en variabel @dato som hadde en datetime2 datatype. Vi kan bruke DATEADD SQL-funksjonen i henhold til følgende spørsmål.

Bruk av SQL SERVER DATEADD-funksjonen for å få poster fra en tabell i angitt datointervall

Vi kan bruke DATEADD SQL-funksjonen til å hente poster fra en tabell i en periode. I det følgende spørsmålet spesifiserte vi en dato med parameteren @Startdate. Vi ønsker å hente poster fra ordretabellen. Vi må skaffe poster mellom @StartDate og @Enddate (legg til 1 time i startdatoen).

Vi får følgende utdata.

Bruk av SQL SERVER DATEADD-funksjonen for å få dato eller tidsforskjell

Vi kan bruke DATEADD SQL-funksjonen for å få tidsforskjell mellom startdato og sluttdato. Mange ganger vil vi bruke SQL SERVER DATEADD-funksjonen for å få datoforskjell. For eksempel vil vi vite hvor lang tid det tok å fullføre en bestilling, eller hvor lang tid det tok å komme hjemmefra til kontoret.

Utfør følgende spørsmål for å få forskjellen mellom starttid og sluttid. Vi bruker DATEADD SQL-funksjonen sammen med DATEDIFF SQL-funksjonen.

Den gir tiden som er gått i minutter. Vi spesifiserte verdi 0 i DateADD SQL-funksjonen. Det tar datoverdi 1900-01-01 00: 00: 00.000

Vi kan bruke SQL Convert datoformat for å representere dette i HH: MM: SS-format.

Det gir tidsforskjellen i HH: MM: SS-format som vist i følgende bilde.

Spesifiser resultatet for SQL SERVER DATEADD som en ny kolonne

Vi kan bruke SQL SERVER DATEADD-funksjonen for å få en ny kolonne etter å ha lagt til ønsket datoverdi. I det følgende spørsmålet vil vi legge til to dager i startdatoen og representere dette som en ny kolonne.

Scalar delspørringer og skalarfunksjoner i DATEADD SQL-funksjonen

Vi kan også bruke SQL SERVER DATEADD-funksjonen med skalære delspørsmål og skalarfunksjoner. I det følgende spørsmålet ønsker vi å legge til antall dager i maks datoverdi for LastEditedWhen i tabellen Salg.ordre.

Den første underspøringen gir tallet 16496 og den andre underspørringen gir en dato. Vi brukte SQL SERVER DATEADD-funksjonen for å legge til antall dager, og vi får følgende utdata.

Numeriske uttrykk i SQL SERVER DATEADD-funksjon

Vi kan også bruke numeriske uttrykk i SQL SERVER DATEADD-funksjonen. I det følgende spørsmålet bruker vi et numerisk uttrykk for å beregne tallet og gi oss en utdata.

1
2
3

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

Bruk av DATEADD med Rank-funksjonen

Vi kan også bruke DATEADD SQL-funksjonen i en rangfunksjon. Vi kan bruke den til nummerargumentet. I det følgende spørsmålet kan du se funksjonen Row_Number () for å bruke tallparameter og verdiene som dataparameter.

Konklusjon

I denne artikkelen undersøkte vi forskjellige bruksområder og eksempler på DATEADD SQL-funksjonen. Det lar oss legge til eller trekke datadelverdier fra den angitte datoen. Jeg håper du liker denne artikkelen. Gi gjerne tilbakemelding i kommentarene nedenfor.

  • Forfatter
  • Nylige innlegg
Som MCSA-sertifisert og Microsoft Certified Trainer i Gurgaon, India, med 13 års erfaring, jobber Rajendra for en rekke store selskaper med fokus på ytelsesoptimalisering, overvåking, høy tilgjengelighet og strategier og implementering av katastrofegjenoppretting. Han er forfatter av hundrevis av autoritative artikler om SQL Server, Azure, MySQL, Linux, Power BI, Performance tuning, AWS / Amazon RDS, Git og relaterte teknologier som til nå har blitt sett av over 10m lesere.
Han er skaper av en av de største gratis online samlingene av artikler om et enkelt emne, med sin 50-delte serie om SQL Server Always On Availability Groups. Basert på sitt bidrag til SQL Server-samfunnet, har han blitt anerkjent med forskjellige priser, inkludert den prestisjetunge «Årets beste forfatter» kontinuerlig i 2020 og 2021 på SQLShack.
Raj er alltid interessert i nye utfordringer, så hvis du trenger rådgivning hjelp til ethvert emne som dekkes av hans skrifter, kan du nås på [email protected]
Se alle innlegg av Rajendra Gupta

Siste innlegg av Rajendra Gupta (se alle)
  • Utfører mindre og større versjonsoppgraderinger for AWS RDS SQL Server – 29. januar 2021
  • Distribuere AWS RDS PostgreSQL-forekomster – 27. januar 2021
  • Overføre lokale SQL-databaser til AWS RDS SQL Server ved hjelp av AWS DMS – 25. januar , 2021

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *