Problem:
Du vill ändra formatet för datum- och tidsdata i en MySQL-databas.
Exempel:
Vår databas har en tabell som heter student_platform
med data i kolumnerna id
, first_name
, last_name
och registration_datetime
.
id | förnamn | efternamn | 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 |
För varje elev, låt oss få deras förnamn, efternamn och registreringsdatum och tid. Vi vill dock visa datum och tid i följande format:förkortat veckodagsnamn, kommatecken, år, månadsnamn, dag i månaden och tiden i timmar, minuter och sekunder. Det ska se ut så här:
Tue, 2019 February 17 11:18:55
Lösning:
Vi använder DATE_FORMAT()
fungera. Här är frågan du skulle skriva:
SELECT first_name, last_name, DATE_FORMAT(registration_datetime,’%a, %Y %M %e %H:%i:%s’) AS format_registration_datetime FROM student_platform;
Här är resultatet av frågan:
förnamn | efternamn | format_registration_datetime |
---|---|---|
Lora | Lorens | lör 23 februari 2019 12:04:23 |
Anne | Smith | Tis 10 juli 2018 10:12:15 |
Tom | Jackson | lör 9 mars 2019 08:20:33 |
Richard | Williams | mån 30 september 2019 06:07:34 |
Diskussion:
I en MySQL-databas låter funktionen DATE_FORMAT() dig visa datum- och tidsdata i ett ändrat format.
Denna funktion tar två argument. Den första är datum/datumtid som ska formateras om; detta kan vara en kolumn för datum/tid/datumtid/tidsstämpel eller ett uttryck som returnerar ett värde i en av dessa datatyper. (I vårt exempel använder vi registration_datetime
kolumnen i datetime datatyp.)
Det andra argumentet är en sträng som innehåller önskat datum- och tidsformat. MySQL gör ett antal specifikationer tillgängliga, som:
- %a – Förkortat veckodagsnamn.
- %Y – År, med fyra siffror.
- %M – Månadens fullständiga namn.
- %e – Dag i månaden (från 1 – 31).
- %H – Timme (från 00-23).
- %i – Protokoll (från 00-59).
- %s – Sekunder (från 00-59).
Du kan lära dig mer om datum- och tidsspecifikationer här, i den officiella MySQL-dokumentationen.
Till exempel Lora Lorens registrerad 2019-02-23 12:04:23. Nu har hennes registreringsdatum och tid det nya formatet "Lör, 23 februari 2019 12:04:23".