Filtrowanie danych na podstawie wartości daty jest częstym zjawiskiem podczas pracy z bazami danych. Może na przykład pozwolić nam na pobranie danych z określonego przedziału czasowego, agregację wyników na podstawie danej daty, identyfikację wzorców trendów w czasie i inne operacje związane z czasem.
Jest to zatem ważna umiejętność każdego programisty baz danych. SQL udostępnia nam różne narzędzia do filtrowania dat w obrębie danego zbioru danych.
Dołącz do nas w tym poście, gdy będziemy odkrywać różne metody i techniki, których możemy użyć do filtrowania dat w świecie SQL.
Warunki wstępne:
Zanim zagłębimy się w praktyczne przykłady i zastosowania, omówmy, czego potrzebujesz do tego.
W tym wpisie postaramy się zastosować metody, które można zastosować w przypadku niemal wszystkich baz danych SQL. Jednakże w celach demonstracyjnych używamy MySQL w wersji 8 z przykładową bazą danych Sakila.
Możesz jednak pobrać i używać dowolnego zbioru danych, jaki chcesz. Z pewnością wskażemy, czy podana metoda może działać w innych bazach danych i jeśli taka istnieje, podamy alternatywę.
Filtruj konkretną datę
Najbardziej podstawowa operacja filtrowania dat polega na tym, że musimy pobrać rekord lub wiele rekordów dla określonej daty.
W takim przypadku możemy użyć klauzuli WHERE, po której następuje kolumna daty i rzeczywista wartość daty, którą chcemy pobrać.
Załóżmy na przykład, że chcemy znaleźć dane dotyczące najmu, które miały miejsce 24 maja 2005 r. Możemy uruchomić zapytanie w następujący sposób:
WYBIERAĆ *Z wynajmu
GDZIE data_wypożyczenia = '2005-05-24 23:03:39' ;
W tym przypadku podajemy datę, którą chcemy filtrować, jako wartość znacznika czasu. Dzieje się tak, ponieważ kolumna „data_wypożyczenia” przechowuje wartości jako sygnaturę czasową.
Filtruj zakres dat
Drugą popularną operacją jest filtrowanie danych na podstawie określonego zakresu dat. Załóżmy na przykład, że chcemy pobrać wypożyczenia, które miały miejsce w okresie od maja 2005 r. do czerwca 2005 r.
Zapytanie możemy uruchomić w następujący sposób:
WYBIERAĆ*
Z
wynajem
GDZIE
data_wypożyczenia POMIĘDZY „2005-04-01 00:00:00” I '2005-06-01 00:00:00' ;
W tym przypadku używamy operatora AND, aby połączyć dwie wartości. Klauzula WHERE jest używana, gdy dowolna wartość z kolumny „data_wypożyczenia” musi znajdować się pomiędzy obydwoma zakresami.
Przykładowe dane wyjściowe są następujące:
Przefiltruj komponent daty
W innych przypadkach zamiast używać zakresu dat przy użyciu wartości literału, możemy wyodrębnić określone składniki daty z wartości i na tej podstawie przefiltrować.
Na przykład zamiast podawać daty 2005-04-01 i 2005-06-01, możemy wyodrębnić miesiąc maj i przefiltrować wszystkie dane znajdujące się w tym miesiącu.
W MySQL możemy użyć funkcji takiej jak MIESIĄC(), aby to osiągnąć, jak pokazano w poniższym przykładzie:
WYBIERAĆ*
Z
wynajem
GDZIE
MIESIĄC ( data_wypożyczenia ) = 5 ;
W tym przypadku MIESIĄC(data_wynajmu) wyodrębnia część miesiąca z daty. Następnie możemy użyć tej wartości do filtrowania, gdzie wartość jest równa 5, maj.
Wniosek
W tym samouczku poznaliśmy jedno z najbardziej podstawowych i typowych zadań w SQL, polegające na filtrowaniu danych na podstawie wartości daty. Dowiedzieliśmy się, jak wyodrębnić różne elementy z daty i używać ich do filtrowania daty i nie tylko.