Ten artykuł zawiera przykłady metody DATE_FORMAT()
funkcja w MySQL.
DATE_FORMAT()
funkcja umożliwia zwrócenie daty w określonym formacie. Na przykład możesz go użyć, aby zwrócić 2020-06-18 jako czwartek, czerwiec 2020 r. , lub jakikolwiek inny wymagany format.
Składnia
Składnia wygląda tak:
DATE_FORMAT(date,format)
Gdzie date
to data, którą chcesz sformatować, a format
określa, jak powinien być sformatowany.
Lista prawidłowych specyfikatorów formatu znajduje się w tabeli na dole tego artykułu. Wartość formatu musi zaczynać się od znaku procentu (%
).
Przykład
Oto przykład do zademonstrowania.
SELECT DATE_FORMAT('2020-06-18', '%W, %M %Y') AS 'Result';
Wynik:
+---------------------+ | Result | +---------------------+ | Thursday, June 2020 | +---------------------+
Krótkie/skrócone nazwy dni i miesięcy
Oto przykład formatowania wyniku na krótkie nazwy dnia i miesiąca.
SELECT DATE_FORMAT('2020-06-18', '%a, %b %Y') AS 'Result';
Wynik:
+---------------+ | Result | +---------------+ | Thu, Jun 2020 | +---------------+
Przykład bazy danych
Oto przykład, w którym formatujemy wartość zwróconą z kolumny bazy danych, która jest przechowywana jako wartość daty i godziny.
USE sakila; SELECT payment_date AS 'Date/Time', DATE_FORMAT(payment_date, '%W, %M %Y') AS 'Date' FROM payment WHERE payment_id = 1;
Wynik:
+---------------------+---------------------+ | Date/Time | Date | +---------------------+---------------------+ | 2005-05-25 11:30:37 | Wednesday, May 2005 | +---------------------+---------------------+
Formatowanie czasu
Możesz także użyć DATE_FORMAT()
aby sformatować składnik czasu data-godzina wartość. Przykład:
USE sakila; SELECT payment_date AS 'Date/Time', DATE_FORMAT(payment_date, '%h:%i:%s') AS 'Time' FROM payment WHERE payment_id = 1;
Wynik:
+---------------------+----------+ | Date/Time | Time | +---------------------+----------+ | 2005-05-25 11:30:37 | 11:30:37 | +---------------------+----------+
Oto kolejny przykład, w którym dodaję AM/PM oznaczenie:
USE sakila; SELECT payment_date AS 'Date/Time', DATE_FORMAT(payment_date, '%h:%i %p') AS 'Time' FROM payment WHERE payment_id = 1;
Wynik:
+---------------------+----------+ | Date/Time | Time | +---------------------+----------+ | 2005-05-25 11:30:37 | 11:30 AM | +---------------------+----------+
Dostępne specyfikatory
Poniższe specyfikatory mogą służyć do określenia formatu zwracanego. Wartość formatu musi zaczynać się od znaku procentu (%
).
Specyfikator | Opis |
---|---|
%a | Skrócona nazwa dnia tygodnia (Sun ..Sat ) |
%b | Skrócona nazwa miesiąca (Jan ..Dec ) |
%c | Miesiąc, numeryczny (0th ..12 ) |
%D | Dzień miesiąca z angielskim sufiksem (0th , 1st , 2nd , 3rd , …) |
%d | Dzień miesiąca, numeryczny (00 ..31 ) |
%e | Dzień miesiąca, numeryczny (0th ..31 ) |
%f | Mikrosekundy (000000 ..999999 ) |
%H | Godzina (00 ..23 ) |
%h | Godzina (01 ..12 ) |
%I | Godzina (01 ..12 ) |
%i | Minuty, numeryczne (00 ..59 ) |
%j | Dzień roku (001 ..366 ) |
%k | Godzina (0th ..23 ) |
%l | Godzina (1 ..12 ) |
%M | Nazwa miesiąca (January ..December ) |
%m | Miesiąc, numerycznie (00 ..12 ) |
%p | AM lub PM |
%r | Czas, 12 godzin (hh:mm:ss po którym następuje AM lub PM ) |
%S | Sekundy (00 ..59 ) |
%s | Sekundy (00 ..59 ) |
%T | Czas, 24 godziny (hh:mm:ss ) |
%U | Tydzień (00 ..53 ), gdzie niedziela jest pierwszym dniem tygodnia; WEEK() tryb 0 |
%u | Tydzień (00 ..53 ), gdzie poniedziałek to pierwszy dzień tygodnia; WEEK() tryb 1 |
%V | Tydzień (01 ..53 ), gdzie niedziela jest pierwszym dniem tygodnia; WEEK() tryb 2; używane z %X |
%v | Tydzień (01 ..53 ), gdzie poniedziałek to pierwszy dzień tygodnia; WEEK() tryb 3; używane z %x |
%W | Nazwa dnia tygodnia (Sunday ..Saturday ) |
%w | Dzień tygodnia (0th =Niedziela...6 =Sobota) |
%X | Rok tygodnia, w którym niedziela jest pierwszym dniem tygodnia, numeryczna, cztery cyfry; używane z %V |
%x | Rok tygodnia, gdzie poniedziałek to pierwszy dzień tygodnia, numeryczny, cztery cyfry; używane z %v |
%Y | Rok, numerycznie, cztery cyfry |
%y | Rok, numeryczny (dwie cyfry) |
%% | Dosłowny % znak |
% | x , dla każdego „x ” nie wymienione powyżej |