W tym przewodniku sprawdzimy jedną taką funkcję. Pokaże, jak używać funkcji datediff w MySQL.
Datediff () w SQL
Funkcja Datediff jest dostępna jako część języka zapytania SQL. W MySQL funkcja datediff () bierze dwie daty jako wejście, oblicza różnicę i zwraca liczbę dat między dwiema datami.
Oto jak wygląda podstawowa struktura funkcji.
$ Datediff (Expression_1, Expression_2)
Tutaj,
Wyrażenie może być z dowolnego z poniższych formatów.
Jednak w standardowym SQL datediff () jest nieco inny. Obsługuje również dodatkowy parametr, aby określić część daty, nad którą należy pracować.
$ Datediff (date_part, ekspresja_1, ekspresja_2)
Tutaj,
DATE_PART: Opisuje, na której części Funkcja powinna obliczyć. Domyślnie wartość jest ustawiona na dni. Jednak obsługuje również dodatkowe wartości. Te wartości date_part mają również odpowiednie skróty.
Funkcja datediff () ma również ograniczenie zakresu. Obliczona wartość różnicy daty musi znajdować się w zakresie liczby całkowitej (-2,147 483 647 do 2147 483 648).
Zastosowanie Datediff ()
W tej sekcji sprawdzimy różne sposoby korzystania z funkcji. Do demonstracji serwer MySQL jest ustawiony z phpMyAdmin dla łatwości użytkowania. Sprawdź ten przewodnik po konfiguracji phpMyAdmin na Ubuntu.
Podstawowe użycie
Z zakładki SQL uruchom następujące zapytanie.
$ Select Datediff („2090-10-11”, „2020-10-10”) jako „wynik”;
Jak pokazuje wyjście, różnica między określonymi datami wynosi 25568 dni.
W porównaniu z wcześniejszą datą
Co jeśli druga data była późniejsza niż pierwsza data? Zamień wartości i przetestuj je.
$ Select Datediff („2020-10-10”, „2090-10-11”) jako „wynik”;
Jak widzimy, wciąż pokazuje 25568 dni. Jednak wartość jest ujemna. Kluczową różnicą należy pamiętać przy wdrażaniu tej funkcji w dowolnym skrypcie/zapytaniu SQL.
Wartości datetime
Funkcja datediff () akceptuje również wartości danych jako parametr. Oczekuje się, że wartości czasu będą w 24-godzinnym formacie.
$ Select Datediff („2090-10-11 23:59:59”, „2020-10-10 00:00:00”) jako „wynik_1”;
$ Select Datediff („2090-10-11 00:00:00”, „2020-10-10 23:59:59”) jako „wynik_2”;
Zauważ, że dodatkowa wartość czasu nie wpływa na wynik obliczeń. Funkcja koncentruje się tylko na dniu.
Praca z niewłaściwymi wartościami daty
Jeśli wartości daty są błędne, Datediff () zwróci wartość zerową. Aby zaprezentować, wprowadź nieprawidłową datę do jednego z parametrów.
$ Select Datediff („2099-99-99”, „2020-20-20”) jako „wynik”
Zgodnie z oczekiwaniami wartość zwrotna jest null.
Łączenie datediff () z curdate ()
Zwrotanie funkcji () zwraca bieżącą datę maszyny. Nie wymaga parametru. Dowiedz się więcej o użyciu Curdate () do wstawienia bieżącej daty i godziny w MySQL.
Korzystając z curdate (), możemy znaleźć różnicę między teraźniejszością a datą docelową. Na przykład porównajmy bieżącą datę z dniem w przeszłości.
$ Select Datediff (Curdate (), „1980-10-10”) jako „wynik”
$ Select Datediff („2077-01-01”, curdate ()) jako „wynik”
Należy zauważyć, że istnieją dodatkowe funkcje, na przykład, current_date (), które działają w taki sam sposób jak curdate (). W sytuacjach oba mogą być zamienne.
$ Select Datediff (current_date (), „1980-10-10”) jako „wynik”
Używanie datediff () z tabelami
Do tej pory zaimplementowaliśmy komendy Simple Datediff (), aby zademonstrować swoje zastosowania. Czas go wdrożyć.
Zabrałem przykładową bazę danych zawierającą różne informacje o określonej firmie i jej pracownikach do demonstracji. Przykładowa baza danych jest bezpośrednio dostępna stąd. Wybierzemy pierwsze i nazwiska pracowników z tej bazy danych i dowiemy się, jak długo pracują.
$ Wybierz First_name, Last_name, Datediff (curdate (), hire_date) jako „dni pracujących” od pracowników;
Końcowe przemyślenia
Ten przewodnik z powodzeniem pokazuje wykorzystanie funkcji Datediff () w MySQL. Oblicza różnicę między dwiema datami i zwraca wartość jako liczbę dni. Wszystkie demonstracje pomagają zrozumieć proces działający funkcji Datediff.
Aby dowiedzieć się więcej o MySQL, sprawdź te przewodniki dotyczące tworzenia tabel, zmiany nazwy, zarządzania uprawnieniami użytkownika itp.
Szczęśliwy komputer!