Denne artikel indeholder eksempler på DATE_FORMAT()
funktion i MySQL.
DATE_FORMAT()
funktionen giver dig mulighed for at returnere en dato i et specificeret format. Du kan f.eks. bruge den til at returnere 2020-06-18 som torsdag juni 2020 , eller hvilket som helst andet format du har brug for.
Syntaks
Syntaksen ser sådan ud:
DATE_FORMAT(date,format)
Hvor date
er den dato, du vil formatere, og format
angiver, hvordan det skal formateres.
For en liste over gyldige formatspecifikationer, se tabellen nederst i denne artikel. Formatværdien skal starte med et procenttegn (%
).
Eksempel
Her er et eksempel til at demonstrere.
SELECT DATE_FORMAT('2020-06-18', '%W, %M %Y') AS 'Result';
Resultat:
+---------------------+ | Result | +---------------------+ | Thursday, June 2020 | +---------------------+
Korte/forkortede dag- og månedsnavne
Her er et eksempel, der formaterer resultatet til korte dag- og månedsnavne.
SELECT DATE_FORMAT('2020-06-18', '%a, %b %Y') AS 'Result';
Resultat:
+---------------+ | Result | +---------------+ | Thu, Jun 2020 | +---------------+
Et databaseeksempel
Her er et eksempel, hvor vi formaterer den værdi, der returneres fra en databasekolonne, der er gemt som en datetime-værdi.
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 | +---------------------+---------------------+
Formatere klokkeslættet
Du kan også bruge DATE_FORMAT()
for at formatere tidskomponenten for en datotid værdi. Eksempel:
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 | +---------------------+----------+
Her er et andet eksempel, hvor jeg tilføjer AM/PM betegner:
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 | +---------------------+----------+
Tilgængelige specifikationer
Følgende specifikationer kan bruges til at angive returformatet. Formatværdien skal starte med et procenttegn (%
).
Specifier | Beskrivelse |
---|---|
%a | Forkortet ugedagsnavn (Sun ..Sat ) |
%b | Forkortet månedsnavn (Jan ..Dec ) |
%c | Måned, numerisk (0 ..12 ) |
%D | Dag i måneden med engelsk suffiks (0th , 1st , 2nd , 3rd , …) |
%d | Dag i måneden, numerisk (00 ..31 ) |
%e | Dag i måneden, numerisk (0 ..31 ) |
%f | Mikrosekunder (000000 ..999999 ) |
%H | Time (00 ..23 ) |
%h | Time (01 ..12 ) |
%I | Time (01 ..12 ) |
%i | Minutter, numerisk (00 ..59 ) |
%j | Dag i året (001 ..366 ) |
%k | Time (0 ..23 ) |
%l | Time (1 ..12 ) |
%M | Månedens navn (January ..December ) |
%m | Måned, numerisk (00 ..12 ) |
%p | AM eller PM |
%r | Tid, 12 timer (hh:mm:ss efterfulgt af AM eller PM ) |
%S | Sekunder (00 ..59 ) |
%s | Sekunder (00 ..59 ) |
%T | Tid, 24 timer (hh:mm:ss ) |
%U | Uge (00 ..53 ), hvor søndag er den første dag i ugen; WEEK() tilstand 0 |
%u | Uge (00 ..53 ), hvor mandag er den første dag i ugen; WEEK() tilstand 1 |
%V | Uge (01 ..53 ), hvor søndag er den første dag i ugen; WEEK() tilstand 2; brugt med %X |
%v | Uge (01 ..53 ), hvor mandag er den første dag i ugen; WEEK() tilstand 3; brugt med %x |
%W | Ugedagsnavn (Sunday ..Saturday ) |
%w | Ugedag (0 =søndag..6 =lørdag) |
%X | År for ugen, hvor søndag er den første dag i ugen, numerisk, fire cifre; bruges med %V |
%x | År for ugen, hvor mandag er den første dag i ugen, numerisk, fire cifre; brugt med %v |
%Y | Årtal, numerisk, fire cifre |
%y | År, numerisk (to cifre) |
%% | En bogstavelig % tegn |
% | x , for enhver "x ” ikke angivet ovenfor |