Jak działa DATEADD w języku SQL? Przykłady zastosowania

Jak działa DATEADD w języku SQL? Przykłady zastosowania

DATEADD to jedna z funkcji dostępnych w SQL, która pozwala na manipulowanie wartościami typu DATA i GODZINA. Dzięki niej możemy łatwo dodawać lub odejmować określone jednostki czasu, takie jak dni, miesiące czy lata. W tym artykule wyjaśnię, jak działa funkcja DATEADD w języku SQL, przedstawiając konkretne przykłady jej zastosowania.

Podstawowa składnia funkcji DATEADD

Składnia funkcji DATEADD w SQL jest bardzo prosta:

DATEADD(interval, liczba, data)

Gdzie:

  • interval – określa jednostkę czasu, jaką chcemy dodać lub odjąć.
  • liczba – liczba jednostek, o jaką zmieniamy datę (może być dodatnia lub ujemna).
  • data – data, na której dokonujemy operacji.

Dostępne jednostki czasu w DATEADD

SQL Server umożliwia użycie różnych jednostek czasu jako pierwszego argumentu funkcji DATEADD. Oto najczęściej stosowane:

Jednostka Opis
year Dodaje lub odejmuje lata
quarter Dodaje lub odejmuje kwartały
month Dodaje lub odejmuje miesiące
day Dodaje lub odejmuje dni
hour Dodaje lub odejmuje godziny
minute Dodaje lub odejmuje minuty
second Dodaje lub odejmuje sekundy

Alternatywnie, możemy używać skróconych nazw, np. yy dla lat czy dd dla dni.

Dodawanie dni do daty – przykład

Załóżmy, że chcemy dodać 10 dni do konkretnej daty:

SELECT DATEADD(day, 10, '2024-06-01') AS NowaData;

Wynik:

2024-06-11

Odejmowanie miesięcy – przykład

Jeśli chcemy odjąć 3 miesiące od konkretnej daty, wystarczy użyć wartości ujemnej:

SELECT DATEADD(month, -3, '2024-06-01') AS NowaData;

Wynik:

2024-03-01

Użycie DATEADD w zapytaniu na tabeli

Często funkcja DATEADD przydaje się w pracy z danymi zapisanymi w tabelach. Przykład:

SELECT 
    ID,
    DataUtworzenia,
    DATEADD(year, 1, DataUtworzenia) AS DataPoRoku
FROM Zamowienia;

To zapytanie zwróci wszystkie zamówienia wraz z ich datą utworzenia i nową datą po dodaniu jednego roku.

Sztuczki i praktyczne zastosowania DATEADD

DATEADD może być użyteczne w wielu scenariuszach, takich jak:

  1. Ustalanie daty wygaśnięcia subskrypcji lub promocji.
  2. Obliczanie daty dostawy na podstawie zamówienia.
  3. Filtrowanie danych oparte na przedziałach czasowych.

Przykład filtrowania zamówień z ostatnich 30 dni:

SELECT * 
FROM Zamowienia 
WHERE DataUtworzenia >= DATEADD(day, -30, GETDATE());

Podsumowanie

Funkcja DATEADD w SQL to potężne narzędzie ułatwiające manipulację danymi czasowymi. Dzięki niej możemy w prosty sposób dodawać lub odejmować dowolne jednostki czasu, co jest niezwykle przydatne w raportowaniu, analizie danych i filtrowaniu wyników.

 

Inny ciekawy artykuł:

Jak działa DATE_TRUNC w języku SQL? Przykłady zastosowania

KajoDataSpace