Problém:
Chcete změnit formát dat data a času v databázi MySQL.
Příklad:
Naše databáze má tabulku s názvem student_platform
s údaji ve sloupcích id
, first_name
, last_name
a registration_datetime
.
id | first_name | last_name | registration_datetime |
---|---|---|---|
1 | Lora | Lorens | 2019-02-23 12:04:23 |
2 | Anne | Smith | 2018-07-10 10:12:15 |
3 | Tome | Jackson | 2019-03-09 08:20:33 |
4 | Richard | Williams | 2018-09-30 06:07:34 |
U každého studenta získáme jeho jméno, příjmení a datum a čas registrace. Chceme však zobrazit datum a čas v následujícím formátu:zkrácený název dne v týdnu, čárka, rok, název měsíce, den v měsíci a čas v hodinách, minutách a sekundách. Mělo by to vypadat takto:
Tue, 2019 February 17 11:18:55
Řešení:
Použijeme DATE_FORMAT()
funkce. Zde je dotaz, který byste napsali:
SELECT first_name, last_name, DATE_FORMAT(registration_datetime,’%a, %Y %M %e %H:%i:%s’) AS format_registration_datetime FROM student_platform;
Zde je výsledek dotazu:
first_name | last_name | format_registration_datetime |
---|---|---|
Lora | Lorens | So, 23. února 2019 12:04:23 |
Anne | Smith | Út, 10. července 2018 10:12:15 |
Tome | Jackson | So, 9. března 2019 08:20:33 |
Richard | Williams | Po, 2019 30. září 06:07:34 |
Diskuse:
V databázi MySQL vám funkce DATE_FORMAT() umožňuje zobrazit data a času ve změněném formátu.
Tato funkce má dva argumenty. První je datum/čas, který se má přeformátovat; může to být sloupec datum/čas/datum/čas/časové razítko nebo výraz vracející hodnotu v jednom z těchto datových typů. (V našem příkladu používáme registration_datetime
sloupec datetime datový typ.)
Druhý argument je řetězec obsahující požadovaný formát data a času. MySQL zpřístupňuje řadu specifikátorů, například:
- %a – Zkrácený název dne v týdnu.
- %Y – Rok ve 4 číslicích.
- %M – Celé jméno měsíce.
- %e – Den v měsíci (od 1 do 31).
- %H – Hodina (od 00 do 23).
- %i – Minuty (od 00 do 59).
- %s – Sekundy (od 00 do 59).
Více o specifikátorech data a času se můžete dozvědět zde, v oficiální dokumentaci MySQL.
Například Lora Lorens registrován dne ‚2019-02-23 12:04:23‘. Nyní má datum a čas její registrace nový formát „So, 2019 February 23 12:04:23“.