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
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
- 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