Тази статия съдържа примери за DATE_FORMAT()
функция в MySQL.
DATE_FORMAT()
функцията ви позволява да върнете дата в определен формат. Можете например да го използвате, за да върнете 2020-06-18 като четвъртък, юни 2020 г. , или какъвто друг формат ви е необходим.
Синтаксис
Синтаксисът е така:
DATE_FORMAT(date,format)
Където date
е датата, която искате да форматирате, и format
указва как трябва да бъде форматиран.
За списък с валидни спецификатори на формат вижте таблицата в долната част на тази статия. Стойността на формата трябва да започва със знак за процент (%
).
Пример
Ето пример за демонстрация.
SELECT DATE_FORMAT('2020-06-18', '%W, %M %Y') AS 'Result';
Резултат:
+---------------------+ | Result | +---------------------+ | Thursday, June 2020 | +---------------------+
Кратки/съкратени имена на дни и месеци
Ето пример, който форматира резултата в кратки имена на дни и месеци.
SELECT DATE_FORMAT('2020-06-18', '%a, %b %Y') AS 'Result';
Резултат:
+---------------+ | Result | +---------------+ | Thu, Jun 2020 | +---------------+
Пример за база данни
Ето пример, при който форматираме стойността, върната от колона на база данни, която се съхранява като стойност за дата и час.
USE sakila; SELECT payment_date AS 'Date/Time', DATE_FORMAT(payment_date, '%W, %M %Y') AS 'Date' FROM payment WHERE payment_id = 1;
Резултат:
+---------------------+---------------------+ | Date/Time | Date | +---------------------+---------------------+ | 2005-05-25 11:30:37 | Wednesday, May 2005 | +---------------------+---------------------+
Форматиране на времето
Можете също да използвате DATE_FORMAT()
за да форматирате компонента за време на datetime стойност. Пример:
USE sakila; SELECT payment_date AS 'Date/Time', DATE_FORMAT(payment_date, '%h:%i:%s') AS 'Time' FROM payment WHERE payment_id = 1;
Резултат:
+---------------------+----------+ | Date/Time | Time | +---------------------+----------+ | 2005-05-25 11:30:37 | 11:30:37 | +---------------------+----------+
Ето още един пример, в който добавям AM/PM обозначение:
USE sakila; SELECT payment_date AS 'Date/Time', DATE_FORMAT(payment_date, '%h:%i %p') AS 'Time' FROM payment WHERE payment_id = 1;
Резултат:
+---------------------+----------+ | Date/Time | Time | +---------------------+----------+ | 2005-05-25 11:30:37 | 11:30 AM | +---------------------+----------+
Налични спецификатори
Следните спецификатори могат да се използват за определяне на формата за връщане. Стойността на формата трябва да започва със знак за процент (%
).
Спецификатор | Описание |
---|---|
%a | Съкратено име на делничен ден (Sun ..Sat ) |
%b | Съкратено име на месеца (Jan ..Dec ) |
%c | Месец, числов (0 ..12 ) |
%D | Ден от месеца с английски суфикс (0th , 1st , 2nd , 3rd , …) |
%d | Ден от месеца, цифров (00 ..31 ) |
%e | Ден от месеца, цифров (0 ..31 ) |
%f | Микросекунди (000000 ..999999 ) |
%H | Час (00 ..23 ) |
%h | Час (01 ..12 ) |
%I | Час (01 ..12 ) |
%i | Минути, числови (00 ..59 ) |
%j | Ден от годината (001 ..366 ) |
%k | Час (0 ..23 ) |
%l | Час (1 ..12 ) |
%M | Име на месеца (Jan ..December ) |
%m | Месец, цифров (00 ..12 ) |
%p | AM или PM |
%r | Време, 12 часа (hh:mm:ss последвано от AM или PM ) |
%S | Секунди (00 ..59 ) |
%s | Секунди (00 ..59 ) |
%T | Време, 24 часа (hh:mm:ss ) |
%U | Седмица (00 ..53 ), където неделя е първият ден от седмицата; WEEK() режим 0 |
%u | Седмица (00 ..53 ), където понеделник е първият ден от седмицата; WEEK() режим 1 |
%V | Седмица (01 ..53 ), където неделя е първият ден от седмицата; WEEK() режим 2; използва се с %X |
%v | Седмица (01 ..53 ), където понеделник е първият ден от седмицата; WEEK() режим 3; използва се с %x |
%W | Име на деня от седмицата (Sunday ..Sat ) |
%w | Ден от седмицата (0 =Неделя..6 =събота) |
%X | Година за седмицата, където неделя е първият ден от седмицата, число, четири цифри; използва се с %V |
%x | Година за седмицата, където понеделник е първият ден от седмицата, число, четири цифри; използва се с %v |
%Y | Година, число, четири цифри |
%y | Година, число (две цифри) |
%% | Литерал % символ |
% | x , за всеки „x ” не е изброено по-горе |