W tym artykule omówiono funkcję DATEADD SQL i jej zastosowanie scenariusze z różnymi przykładami.
Zwykle pracujemy z typem danych daty w SQL Server. Musimy też manipulować datami. W moim poprzednim artykule DATEPART SQL FUNCTION zbadaliśmy możliwość pobrania określonej części z daty, takiej jak dzień, rok, miesiąc, kwartał, dzień roku.
Możemy użyć funkcji SQL SERVER DATEADD, aby dodać lub odjąć określony okres od a daje datę.
Składnia
DATEADD (datapart, liczba, data)
- Pora daty: Określa część daty, w której chcemy dodać lub odjąć określony przedział czasu. Może mieć takie wartości, jak rok, miesiąc, dzień i tydzień. Więcej dowiemy się w przykładowej sekcji.
- Liczba: Jest to liczba, o którą chcemy zwiększyć lub zmniejszyć datę. Powinna to być liczba całkowita
- Data: możemy określić tutaj datę. W tym dniu chcemy dodać określoną liczbę w datapart
Załóżmy, że chcemy dodać dziesięć dni do bieżącej daty. W tym przykładzie zmiennymi byłyby
- Wartość części daty: Dzień
- Liczba: 5
- Data: Getdate () – Bieżąca data
Poznaj funkcję SQL SERVER DATEADD z przykładami
Typy danych w funkcji SQL SERVER DATEADD
W wyrażeniu daty możemy użyć następującego typu danych.
- data
- DateTime
- datetimeoffset
- datetime2
- smalldatetime
- czas
W poniższym zapytaniu zadeklarowaliśmy zmienną @date o typie danych datetime2. Możemy użyć funkcji DATEADD SQL zgodnie z następującym zapytaniem.
Użycie funkcji SQL SERVER DATEADD do pobrania rekordów z tabela w określonym zakresie dat
Możemy użyć funkcji SQL DATEADD do pobrania rekordów z tabeli z okresu. W poniższym zapytaniu określiliśmy datę za pomocą parametru @Startdate. Chcemy pobrać rekordy z tabeli Zamówienia. Musimy uzyskać rekordy między @StartDate a @Enddate (dodaj 1 godzinę do daty rozpoczęcia).
Otrzymujemy następujące dane wyjściowe.
Użycie funkcji SQL SERVER DATEADD w celu uzyskania różnicy daty lub czasu
Możemy użyć funkcji SQL DATEADD, aby uzyskać różnicę czasu między datą początkową i końcową. Często chcemy użyć funkcji SQL SERVER DATEADD, aby uzyskać różnicę dat. Na przykład chcemy wiedzieć, ile czasu zajęło ukończenie zamówienia lub jak długo trwało dotarcie z domu do biura.
Wykonaj następujące zapytanie, aby uzyskać różnicę między godziną rozpoczęcia i zakończenia. Używamy funkcji SQL DATEADD wraz z funkcją SQL DATEDIFF.
Podaje czas, który upłynął w minutach. W funkcji SQL DateADD określiliśmy wartość 0. Przyjmuje wartość daty 1900-01-01 00: 00: 00.000
Aby to przedstawić, możemy użyć formatu daty SQL Convert w formacie HH: MM: SS.
Podaje różnicę czasu w formacie HH: MM: SS, jak pokazano na poniższym obrazku.
Określ wynik funkcji SQL SERVER DATEADD jako nową kolumnę
Możemy użyć funkcji SQL SERVER DATEADD, aby uzyskać nową kolumnę po dodaniu wymaganej wartości daty. W poniższym zapytaniu chcemy dodać dwa dni do daty początkowej i przedstawić to jako nową kolumnę.
Skalar podzapytania i funkcje skalarne w funkcji DATEADD SQL
Funkcji SQL SERVER DATEADD możemy używać również z podzapytaniami skalarnymi i funkcjami skalarnymi. W poniższym zapytaniu chcemy dodać liczbę dni w maksymalnej wartości daty LastEditedWhen w tabeli Sales.orders.
Pierwsze podzapytanie podaje liczbę 16496, a drugie zapytanie podrzędne podaje datę. Użyliśmy funkcji SQL SERVER DATEADD, aby dodać liczbę dni i otrzymaliśmy następujące dane wyjściowe.
Wyrażenia liczbowe w Funkcja SQL SERVER DATEADD
Możemy również używać wyrażeń numerycznych w funkcji SQL SERVER DATEADD. W poniższym zapytaniu używamy wyrażenia numerycznego, aby obliczyć liczbę i dać nam wynik.
1
2
3
|
SELECT GETDATE () AS CurrentDate,
DATEADD (miesiąc, – (12/6), GETDATE ()) AS ModifiedDate;
|
Używanie DATEADD z funkcją Rank
Funkcji SQL DATEADD możemy również używać w funkcji rangi. Możemy go użyć jako argumentu liczbowego. W poniższym zapytaniu można zobaczyć funkcję Row_Number (), aby użyć parametru liczbowego i wartości jako parametru daty.
Podsumowanie
W tym artykule omówiliśmy różne zastosowania i przykłady funkcji DATEADD SQL. Pozwala nam dodawać lub odejmować wartości datepart od określonej daty. Mam nadzieję, że podoba Ci się ten artykuł. Zachęcamy do wyrażania opinii w komentarzach poniżej.
- Autor
- Najnowsze posty
Jest twórcą jednej z największych bezpłatnych kolekcji artykułów online na jeden temat, obejmującej 50-częściową serię na temat grup dostępności SQL Server Always On. Dzięki swojemu wkładowi w społeczność SQL Server, został wyróżniony różnymi nagrodami, w tym prestiżową nagrodą „Najlepszy autor roku” nieprzerwanie w 2020 i 2021 roku w SQLShack.
Raj jest zawsze zainteresowany nowymi wyzwaniami, więc jeśli potrzebujesz konsultacji pomoc w każdym temacie poruszonym w jego pismach, można się z nim skontaktować pod adresem [email protected]
Wyświetl wszystkie posty Rajendry Gupty
- Wykonywanie drobnych i głównych aktualizacji wersji AWS RDS SQL Server – 29 stycznia 2021
- Wdrażanie wystąpień AWS RDS PostgreSQL – 27 stycznia 2021
- Migracja lokalnych baz danych SQL do AWS RDS SQL Server przy użyciu AWS DMS – 25 stycznia , 2021