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