SQLShack (Polski)

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
Jako certyfikowany przez MCSA i certyfikowany trener Microsoft w Gurgaon w Indiach, z 13-letnim doświadczeniem, Rajendra pracuje dla różnych dużych firm, koncentrując się na optymalizacji wydajności, monitorowaniu, wysokiej dostępności i strategiach odtwarzania po awarii oraz wdrażaniu. Jest autorem setek autorytatywnych artykułów na temat SQL Server, Azure, MySQL, Linux, Power BI, Performance Tuning, AWS / Amazon RDS, Git i powiązanych technologii, które do tej pory obejrzało ponad 10 milionów czytelników.
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

Najnowsze posty Rajendry Gupty (zobacz wszystkie)
  • 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

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *