Den här artikeln innehåller exempel på DATE_FORMAT()
funktion i MySQL.
DATE_FORMAT()
funktionen låter dig returnera ett datum i ett specificerat format. Du kan till exempel använda den för att returnera 2020-06-18 som torsdag juni 2020 , eller vilket annat format du behöver.
Syntax
Syntaxen ser ut så här:
DATE_FORMAT(date,format)
Där date
är det datum du vill formatera och format
anger hur den ska formateras.
För en lista över giltiga formatspecifikationer, se tabellen längst ner i den här artikeln. Formatvärdet måste börja med ett procenttecken (%
).
Exempel
Här är ett exempel att visa.
SELECT DATE_FORMAT('2020-06-18', '%W, %M %Y') AS 'Result';
Resultat:
+---------------------+ | Result | +---------------------+ | Thursday, June 2020 | +---------------------+
Korta/förkortade dag- och månadsnamn
Här är ett exempel som formaterar resultatet till korta dag- och månadsnamn.
SELECT DATE_FORMAT('2020-06-18', '%a, %b %Y') AS 'Result';
Resultat:
+---------------+ | Result | +---------------+ | Thu, Jun 2020 | +---------------+
Ett databasexempel
Här är ett exempel där vi formaterar värdet som returneras från en databaskolumn som lagras som ett datum och tid.
USE sakila; SELECT payment_date AS 'Date/Time', DATE_FORMAT(payment_date, '%W, %M %Y') AS 'Date' FROM payment WHERE payment_id = 1;
Resultat:
+---------------------+---------------------+ | Date/Time | Date | +---------------------+---------------------+ | 2005-05-25 11:30:37 | Wednesday, May 2005 | +---------------------+---------------------+
Formatera tiden
Du kan också använda DATE_FORMAT()
för att formatera tidskomponenten för en datetime värde. Exempel:
USE sakila; SELECT payment_date AS 'Date/Time', DATE_FORMAT(payment_date, '%h:%i:%s') AS 'Time' FROM payment WHERE payment_id = 1;
Resultat:
+---------------------+----------+ | Date/Time | Time | +---------------------+----------+ | 2005-05-25 11:30:37 | 11:30:37 | +---------------------+----------+
Här är ett annat exempel där jag lägger till AM/PM beteckning:
USE sakila; SELECT payment_date AS 'Date/Time', DATE_FORMAT(payment_date, '%h:%i %p') AS 'Time' FROM payment WHERE payment_id = 1;
Resultat:
+---------------------+----------+ | Date/Time | Time | +---------------------+----------+ | 2005-05-25 11:30:37 | 11:30 AM | +---------------------+----------+
Tillgängliga specifikationer
Följande specifikationer kan användas för att ange returformatet. Formatvärdet måste börja med ett procenttecken (%
).
Specifierare | Beskrivning |
---|---|
%a | Förkortat veckodagsnamn (Sun ..Sat ) |
%b | Förkortat månadsnamn (Jan ..Dec ) |
%c | Månad, numerisk (0 ..12 ) |
%D | Dag i månaden med engelskt suffix (0th , 1st , 2nd , 3rd , …) |
%d | Dag i månaden, numerisk (00 ..31 ) |
%e | Dag i månaden, numerisk (0 ..31 ) |
%f | Mikrosekunder (000000 ..999999 ) |
%H | Timme (00 ..23 ) |
%h | Timme (01 ..12 ) |
%I | Timme (01 ..12 ) |
%i | Minuter, numeriska (00 ..59 ) |
%j | Dag på året (001 ..366 ) |
%k | Timme (0 ..23 ) |
%l | Timme (1 ..12 ) |
%M | Månadsnamn (January ..December ) |
%m | Månad, numerisk (00 ..12 ) |
%p | AM eller PM |
%r | Tid, 12 timmar (hh:mm:ss följt av AM eller PM ) |
%S | Sekunder (00 ..59 ) |
%s | Sekunder (00 ..59 ) |
%T | Tid, 24 timmar (hh:mm:ss ) |
%U | Vecka (00 ..53 ), där söndag är den första dagen i veckan; WEEK() läge 0 |
%u | Vecka (00 ..53 ), där måndag är den första dagen i veckan; WEEK() läge 1 |
%V | Vecka (01 ..53 ), där söndag är den första dagen i veckan; WEEK() läge 2; används med %X |
%v | Vecka (01 ..53 ), där måndag är den första dagen i veckan; WEEK() läge 3; används med %x |
%W | Veckodagens namn (Sunday ..Saturday ) |
%w | Veckodag (0 =Söndag..6 =lördag) |
%X | År för veckan där söndag är den första dagen i veckan, numeriskt, fyra siffror; används med %V |
%x | Veckans år, där måndag är den första dagen i veckan, numeriskt, fyra siffror; används med %v |
%Y | Årtal, siffror, fyra siffror |
%y | Årtal, numeriskt (två siffror) |
%% | En bokstavlig % tecken |
% | x , för någon "x ” inte listad ovan |