Problem:
Du vil gerne ændre formatet for dato- og tidsdata i en MySQL-database.
Eksempel:
Vores database har en tabel med navnet student_platform
med data i kolonnerne id
, first_name
, last_name
, og registration_datetime
.
id | fornavn | efternavn | registration_datetime |
---|---|---|---|
1 | Lora | Lorens | 2019-02-23 12:04:23 |
2 | Anne | Smith | 2018-07-10 10:12:15 |
3 | Tom | Jackson | 2019-03-09 08:20:33 |
4 | Richard | Williams | 2018-09-30 06:07:34 |
Lad os for hver elev få deres fornavn, efternavn og registreringsdato og -klokkeslæt. Vi ønsker dog at vise dato og klokkeslæt i følgende format:forkortet ugedagsnavn, komma, år, månedsnavn, dag i måneden og klokkeslættet i timer, minutter og sekunder. Det skulle se sådan ud:
Tue, 2019 February 17 11:18:55
Løsning:
Vi bruger DATE_FORMAT()
fungere. Her er den forespørgsel, du ville skrive:
SELECT first_name, last_name, DATE_FORMAT(registration_datetime,’%a, %Y %M %e %H:%i:%s’) AS format_registration_datetime FROM student_platform;
Her er resultatet af forespørgslen:
fornavn | efternavn | format_registration_datetime |
---|---|---|
Lora | Lorens | Lør, 23. februar 2019 12:04:23 |
Anne | Smith | tirs 10. juli 2018 10:12:15 |
Tom | Jackson | Lør, 9. marts 2019 08:20:33 |
Richard | Williams | Mandag 30. september 2019 06:07:34 |
Diskussion:
I en MySQL-database giver DATE_FORMAT()-funktionen dig mulighed for at vise dato- og tidsdata i et ændret format.
Denne funktion tager to argumenter. Den første er den dato/datotid, der skal omformateres; dette kan være en dato/tid/datotid/tidsstempelkolonne eller et udtryk, der returnerer en værdi i en af disse datatyper. (I vores eksempel bruger vi registration_datetime
kolonne i datetime datatype.)
Det andet argument er en streng, der indeholder det ønskede dato- og tidsformat. MySQL stiller en række specifikationer til rådighed, såsom:
- %a – Forkortet ugedagsnavn.
- %Y – Årstal med 4 cifre.
- %M – Månedens fulde navn.
- %e – Dag i måneden (fra 1 – 31).
- %H – Time (fra 00-23).
- %i – Referat (fra 00-59).
- %s – Sekunder (fra 00-59).
Du kan lære mere om dato- og tidsangivelser her i den officielle MySQL-dokumentation.
For eksempel Lora Lorens registreret '2019-02-23 12:04:23'. Nu har hendes registreringsdato og klokkeslæt det nye format "Lør, 23. februar 2019 12:04:23".