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".