DATE_FORMAT – opis funkcji SQL z przykładami – Kurs języka SQL

DATE_FORMAT() – funkcja formatująca podaną datę do określonego formatu. Poniżej znajduje się lista parametrów, które mogą zostać użyte do określenia formatu zwróconej daty/czasu. Parametry można ze sobą łączyć.

Wywołanie funkcji wygląda następująco:

SELECT DATE_FORMAT('data/czas', 'format');

%a – skrócona nazwa dnia tygodnia (Sun..Sat)

SELECT DATE_FORMAT('2016-04-05 11:14:47', '%a'); -- Tue

%b – skrócona nazwa dnia tygodnia (Jan..Dec)

SELECT DATE_FORMAT('2016-04-05 11:14:47', '%b'); -- Apr

%c – numer miesiąca (0..12)

SELECT DATE_FORMAT('2016-04-05 11:14:47', '%c'); -- 4

%D – numer dnia (0..12) z sufiksem (0th, 1st, 2nd, 3rd, …)

SELECT DATE_FORMAT('2016-04-05 11:14:47', '%D'); -- 5th

%d – numer dnia (01..31)

SELECT DATE_FORMAT('2016-04-05 11:14:47', '%d'); -- 05

%e – funkcja zwraca dzień miesiąca (0..31)

SELECT DATE_FORMAT('2016-04-05 11:14:47', '%e'); -- 5

%f – zwraca liczbę milisekund z podanego czasu (000000..999999)

SELECT DATE_FORMAT('2016-04-00 11:14:47.46543', '%f'); -- 465430

%H – zwraca godzinę dla podanego czasu (00..23)

SELECT DATE_FORMAT('2016-04-05 11:14:47', '%H'); -- 11

%h – zwraca godzinę dla podanego czasu (01..12)

SELECT DATE_FORMAT('2016-04-05 11:14:47', '%h'); -- 11

%I – zwraca godzinę dla podanego czasu (01..12)

SELECT DATE_FORMAT('2016-04-05 11:14:47', '%I'); -- 11

%i – zwraca minuty dla podanego czasu (00..59)

SELECT DATE_FORMAT('2016-04-05 11:14:47', '%i'); -- 14

%j – zwraca numer dnia w roku (001..366)

SELECT DATE_FORMAT('2016-04-00 11:14:47', '%j'); -- 091

%k – zwraca godzinę dla podanego czasu (0..23)

SELECT DATE_FORMAT('2016-04-00 11:14:47', '%k'); -- 11

%l – zwraca godzinę dla podanego czasu (1..12)

SELECT DATE_FORMAT('2016-04-00 11:14:47', '%l'); -- 11

%M – pełna nazwa miesiąca (January..December)

SELECT DATE_FORMAT('2016-04-05 11:14:47', '%M'); -- April

%m – numer miesiąca (00..12)

SELECT DATE_FORMAT('2016-04-05 11:14:47', '%m'); -- 04

%p – zwraca AM lub PM dla podanego czasu

SELECT DATE_FORMAT('2016-04-05 11:14:47', '%p'); -- AM

%r – zwraca AM lub PM wraz z podanym czasem

SELECT DATE_FORMAT('2016-04-05 11:14:47', '%r'); -- 11:14:47 AM

%S – liczba sekund dla podanego czasu (00..59)

SELECT DATE_FORMAT('2016-04-05 11:14:47', '%S'); -- 47

%s – liczba sekund dla podanego czasu (00..59)

SELECT DATE_FORMAT('2016-04-05 11:14:47', '%s'); -- 47

%T – zwraca czas z podanej wartości w formacie hh:mm:ss

SELECT DATE_FORMAT('2016-04-05 11:14:47', '%T'); -- 11:14:47

%U – numer tygodnia w roku (00..53), gdzie niedziela jest pierwszym dniem tygodnia

SELECT DATE_FORMAT('2016-04-05 11:14:47', '%U'); -- 14

%u – numer tygodnia w roku (00..53), gdzie poniedziałek jest pierwszym dniem tygodnia

SELECT DATE_FORMAT('2016-04-05 11:14:47', '%u'); -- 14

%V – numer tygodnia w roku (01..53), gdzie niedziela jest pierwszym dniem tygodnia

SELECT DATE_FORMAT('2016-04-05 11:14:47', '%V'); -- 14

%v – numer tygodnia w roku (01..53), gdzie poniedziałek jest pierwszym dniem tygodnia

SELECT DATE_FORMAT('2016-04-05 11:14:47', '%v'); -- 14

%W – pełna nazwa dnia tygodnia (Sunday..Saturday)

SELECT DATE_FORMAT('2016-04-05 11:14:47', '%W'); -- Tuesday

%w – dzień tygodnia – liczbowo (0-Sunday..6-Saturday)

SELECT DATE_FORMAT('2016-04-05 11:14:47', '%w'); -- 2

%X – rok dla tygodnia, gdzie pierwszy dzień tygodnia to niedziela

SELECT DATE_FORMAT('2016-04-05 11:14:47', '%X'); -- 2016

%x – rok dla tygodnia, gdzie pierwszy dzień tygodnia to poniedziałek

SELECT DATE_FORMAT('2016-04-05 11:14:47', '%x'); -- 2016

%Y – funkcja zwraca rok w formacie YYYY

SELECT DATE_FORMAT('2016-04-05 11:14:47', '%Y'); -- 2016

%y – funkcja zwraca rok w formacie YY

SELECT DATE_FORMAT('2016-04-05 11:14:47', '%y'); -- 16

Przykłady

1. Funkcja zwracająca aktualną datę oraz czas w formacie: 05.04.2016, 12:04:48

SELECT DATE_FORMAT(NOW(), '%d.%m.%Y, %h:%m:%s');

2. Funkcja zwracająca aktualną datę w formacie: 5th April 2016

SELECT DATE_FORMAT(NOW(), '%D %M %Y');

3. Funkcja zwracająca aktualną datę w formacie: 05-04-2016

SELECT DATE_FORMAT(CURDATE(), '%d-%m-%Y');

4. Jaki dzień tygodnia wypada w dniu 2022-02-05 (Saturday)

SELECT DATE_FORMAT('2022-02-05', '%W');