Dit artikel onderzoekt de DATEADD SQL-functie en het gebruik ervan scenarios met verschillende voorbeelden.
Meestal werken we met datatype datum in SQL Server. We moeten ook manipulaties uitvoeren met datums. In mijn vorige artikel DATEPART SQL FUNCTION hebben we onderzocht om een specifiek deel van de datum op te halen, zoals dag, jaar, maand, kwartaal, dag van het jaar.
We kunnen de functie SQL SERVER DATEADD gebruiken om een specifieke periode toe te voegen aan of af te trekken van een datum.
Syntaxis
DATEADD (datepart, number, date)
- Datepart: het specificeert het deel van de datum waarin we een specifiek tijdsinterval willen optellen of aftrekken. Het kan waarden hebben zoals jaar, maand, dag en week. We zullen hierover meer onderzoeken in de voorbeeldsectie.
- Getal: het is het getal waarmee we de datum willen verhogen of verlagen. Het moet een geheel getal zijn.
- Datum: we kunnen hier de datum specificeren. In deze datum willen we een gespecificeerd nummer toevoegen aan datepart
Stel dat we tien dagen willen optellen bij de huidige datum. In dit voorbeeld zouden de variabelen zijn
- Datepart-waarde: dag
- Getal: 5
- Datum: Getdate () – Huidige datum
Verken de SQL SERVER DATEADD-functie met voorbeelden
Gegevenstypen in de SQL SERVER DATEADD-functie
We kunnen het volgende gegevenstype gebruiken in datumexpressie.
- date
- DateTime
- datetimeoffset
- datetime2
- smalldatetime
- time
In de volgende zoekopdracht hebben we een variabele @date gedeclareerd met een datetime2 datatype. We kunnen de DATEADD SQL-functie gebruiken volgens de volgende query.
De SQL SERVER DATEADD-functie gebruiken om records van een tabel in opgegeven datumbereik
We kunnen de DATEADD SQL-functie gebruiken om records uit een tabel voor een periode op te halen. In de volgende query hebben we een datum gespecificeerd met parameter @Startdate. We willen records ophalen uit de tabel Orders. We hebben records nodig tussen @StartDate en @Enddate (voeg 1 uur toe aan de startdatum).
We krijgen de volgende uitvoer.
Gebruik van de SQL SERVER DATEADD-functie om het datum- of tijdsverschil te krijgen
We kunnen de DATEADD SQL-functie gebruiken om het tijdsverschil tussen de startdatum en de einddatum te krijgen. Vaak willen we de functie SQL SERVER DATEADD gebruiken om het datumverschil te krijgen. We willen bijvoorbeeld weten hoe lang het duurde om een bestelling te voltooien of hoe lang het duurde om van huis naar kantoor te komen.
Voer de volgende zoekopdracht uit om het verschil te zien tussen starttijd en eindtijd. We gebruiken de DATEADD SQL-functie samen met de DATEDIFF SQL-functie.
Het geeft de verstreken tijd in minuten. We hebben waarde 0 gespecificeerd in de DateADD SQL-functie. Het heeft datumwaarde 1900-01-01 00: 00: 00.000 nodig
We kunnen de datumnotatie SQL Convert gebruiken om dit weer te geven in UU: MM: SS-indeling.
Het geeft het tijdsverschil in UU: MM: SS-formaat zoals getoond in de volgende afbeelding.
Specificeer het resultaat van de SQL SERVER DATEADD-functie als een nieuwe kolom
We kunnen de SQL SERVER DATEADD-functie gebruiken om een nieuwe kolom te krijgen na het toevoegen van de vereiste datumwaarde. In de volgende zoekopdracht willen we twee dagen aan de startdatum toevoegen en dit voorstellen als een nieuwe kolom.
Scalair subquerys en scalaire functies in de DATEADD SQL-functie
We kunnen de SQL SERVER DATEADD-functie ook gebruiken met scalaire subquerys en scalaire functies. In de volgende query willen we het aantal dagen toevoegen aan de maximale datumwaarde van LastEditedWhen in de tabel Sales.orders.
De eerste subquery geeft het nummer 16496 en de tweede subquery geeft een datum. We hebben de functie SQL SERVER DATEADD gebruikt om het aantal dagen toe te voegen, en we krijgen de volgende uitvoer.
Numerieke uitdrukkingen in de SQL SERVER DATEADD-functie
We kunnen ook numerieke uitdrukkingen gebruiken in de SQL SERVER DATEADD-functie. In de volgende zoekopdracht gebruiken we een numerieke uitdrukking om het getal te berekenen en ons een uitvoer te geven.
1
2
3
|
SELECTEER GETDATE () AS CurrentDate,
DATEADD (maand, – (12/6), GETDATE ()) AS ModifiedDate;
|
DATEADD gebruiken met de Rank-functie
We kunnen de DATEADD SQL-functie ook in een rank-functie gebruiken. We kunnen het gebruiken voor het getalargument. In de volgende query ziet u de functie Row_Number () om de nummerparameter te gebruiken en de waarden als datumparameter.
Conclusie
In dit artikel hebben we verschillende toepassingen en voorbeelden van de DATEADD SQL-functie onderzocht. Hiermee kunnen we datapart-waarden toevoegen of aftrekken van de opgegeven datum. Ik hoop dat je dit artikel leuk vindt. Voel je vrij om feedback te geven in de reacties hieronder.
- Auteur
- Recente berichten
Hij is de maker van een van de grootste gratis online collecties met artikelen over een enkel onderwerp, met zijn 50-delige serie over SQL Server Always On Availability Groups. Op basis van zijn bijdrage aan de SQL Server-gemeenschap, werd hij bekroond met verschillende prijzen, waaronder de prestigieuze “Beste auteur van het jaar”, continu in 2020 en 2021 bij SQLShack.
Raj is altijd geïnteresseerd in nieuwe uitdagingen, dus als je advies nodig hebt hulp bij elk onderwerp dat in zijn geschriften aan bod komt, hij is te bereiken op [email protected]
Bekijk alle berichten van Rajendra Gupta
- Kleine en grote versie-upgrades voor AWS uitvoeren RDS SQL Server – 29 januari 2021
- Implementatie van AWS RDS PostgreSQL-instanties – 27 januari 2021
- Migratie van uw on-premises SQL-databases naar AWS RDS SQL Server met behulp van AWS DMS – 25 januari , 2021