
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:
- Ustalanie daty wygaśnięcia subskrypcji lub promocji.
- Obliczanie daty dostawy na podstawie zamówienia.
- 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
Opanuj SQL z moim kursem!
Poznasz zarówno podstawy, jak i zaawansowane zapytania analityczne (CTE, subqueries, window functions). Nauczysz się pracować na różnych silnikach – na kursie pracujemy zarówno na MySQL, jak i na Postgres. Wszystko zainstalujemy na Twoim komputerze, plus dostaniesz mnóstwo zestawów danych do ćwiczeń.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, Tableau i Pythona z certyfikatami + specjalistycznych webinarów z PowerBI.
Ekskluzywana ale pomagająca sobie społeczność.
Ponad 61 godzin materiałów video.
Spotkania LIVE co miesiąc.
Mój osobisty mentoring.