Tento článek obsahuje příklady DATE_FORMAT()
funkce v MySQL.
DATE_FORMAT()
Funkce umožňuje vrátit datum v určeném formátu. Můžete jej použít například k návratu 2020-06-18 jako Čtvrtek, červen 2020 , nebo jakýkoli jiný požadovaný formát.
Syntaxe
Syntaxe vypadá takto:
DATE_FORMAT(date,format)
Kde date
je datum, které chcete formátovat, a format
určuje, jak má být formátován.
Seznam platných specifikátorů formátu naleznete v tabulce ve spodní části tohoto článku. Hodnota formátu musí začínat znakem procenta (%
).
Příklad
Zde je příklad k demonstraci.
SELECT DATE_FORMAT('2020-06-18', '%W, %M %Y') AS 'Result';
Výsledek:
+---------------------+ | Result | +---------------------+ | Thursday, June 2020 | +---------------------+
Krátké/zkrácené názvy dnů a měsíců
Zde je příklad, který formátuje výsledek do krátkých názvů dnů a měsíců.
SELECT DATE_FORMAT('2020-06-18', '%a, %b %Y') AS 'Result';
Výsledek:
+---------------+ | Result | +---------------+ | Thu, Jun 2020 | +---------------+
Příklad databáze
Zde je příklad, kdy formátujeme hodnotu vrácenou z databázového sloupce, který je uložen jako hodnota datetime.
USE sakila; SELECT payment_date AS 'Date/Time', DATE_FORMAT(payment_date, '%W, %M %Y') AS 'Date' FROM payment WHERE payment_id = 1;
Výsledek:
+---------------------+---------------------+ | Date/Time | Date | +---------------------+---------------------+ | 2005-05-25 11:30:37 | Wednesday, May 2005 | +---------------------+---------------------+
Formátování času
Můžete také použít DATE_FORMAT()
k formátování časové složky datetime hodnota. Příklad:
USE sakila; SELECT payment_date AS 'Date/Time', DATE_FORMAT(payment_date, '%h:%i:%s') AS 'Time' FROM payment WHERE payment_id = 1;
Výsledek:
+---------------------+----------+ | Date/Time | Time | +---------------------+----------+ | 2005-05-25 11:30:37 | 11:30:37 | +---------------------+----------+
Zde je další příklad, kam přidám AM/PM označení:
USE sakila; SELECT payment_date AS 'Date/Time', DATE_FORMAT(payment_date, '%h:%i %p') AS 'Time' FROM payment WHERE payment_id = 1;
Výsledek:
+---------------------+----------+ | Date/Time | Time | +---------------------+----------+ | 2005-05-25 11:30:37 | 11:30 AM | +---------------------+----------+
Dostupné specifikace
Následující specifikátory lze použít k určení návratového formátu. Hodnota formátu musí začínat znakem procenta (%
).
Specifikátor | Popis |
---|---|
%a | Zkrácený název dne v týdnu (Sun ..Sat ) |
%b | Zkrácený název měsíce (Jan ..Dec ) |
%c | Měsíc, numerický (0 ..12 ) |
%D | Den v měsíci s anglickou příponou (0th , 1st , 2nd , 3rd , …) |
%d | Den v měsíci, číselný údaj (00 ..31 ) |
%e | Den v měsíci, číselný údaj (0 ..31 ) |
%f | Mikrosekundy (000000 ..999999 ) |
%H | Hodina (00 ..23 ) |
%h | Hodina (01 ..12 ) |
%I | Hodina (01 ..12 ) |
%i | Minuty, číselné (00 ..59 ) |
%j | Den v roce (001 ..366 ) |
%k | Hodina (0 ..23 ) |
%l | Hodina (1 ..12 ) |
%M | Název měsíce (January ..December ) |
%m | Měsíc, numerický (00 ..12 ) |
%p | AM nebo PM |
%r | Čas, 12 hodin (hh:mm:ss následuje AM nebo PM ) |
%S | Sekundy (00 ..59 ) |
%s | Sekundy (00 ..59 ) |
%T | Čas, 24 hodin (hh:mm:ss ) |
%U | Týden (00 ..53 ), kde neděle je prvním dnem v týdnu; WEEK() režim 0 |
%u | Týden (00 ..53 ), kde pondělí je první den v týdnu; WEEK() režim 1 |
%V | Týden (01 ..53 ), kde neděle je prvním dnem v týdnu; WEEK() režim 2; používá se s %X |
%v | Týden (01 ..53 ), kde pondělí je první den v týdnu; WEEK() režim 3; používá se s %x |
%W | Název dne v týdnu (Sunday ..Saturday ) |
%w | Den v týdnu (0 =Neděle..6 =Sobota) |
%X | Rok pro týden, kde neděle je prvním dnem v týdnu, číslice, čtyři číslice; používá se s %V |
%x | Rok pro týden, kde pondělí je první den v týdnu, číselné, čtyři číslice; používá se s %v |
%Y | Rok, číslice, čtyři číslice |
%y | Rok, číselný (dvě číslice) |
%% | Doslovné % postava |
% | x , pro jakékoli „x ” není uvedeno výše |