MySQL je odvozeno z ‚My‘ – dcery spoluzakladatele a SQL – strukturovaného dotazovacího jazyka. Jedná se o open-source typ systému správy relačních databází. Tento relační databázový systém pomáhá organizovat data do vzájemně propojitelných tabulek, čímž umožňuje strukturní vztahy různých datových sad.
Datum MySQL je jedním z dočasných datových typů, které mohou spravovat datové hodnoty spolu s jinými datovými typy, jako jsou číselné datové typy, datové typy String, booleovské datové typy, datum a čas a prostorové datové typy.
Funkce DATE_FORMAT() se používá v MySQL k formátování data pomocí zadané hodnoty formátu. Pokud je například zadáno datum, funkce jej naformátuje podle zadaných parametrů.
Syntaxe formátu data MySQL
DATE_FORMAT(datum, formát)
Funkce syntaxe výše přijímá dva parametry, jak je uvedeno níže:
- datum – určuje datum, které se má formátovat
- formát – definuje formát, který se použije k formátování data
Níže je uveden seznam formátů, se kterými byste se měli seznámit při práci s funkcí data.
- %a – tento formát zobrazuje název dne v týdnu. je omezena od neděle do soboty.
- %b – tento symbol formátu zobrazuje název měsíce. je omezena od ledna do prosince.
- %c – tento symbol formátu označuje číselný název měsíce. je omezena na 0 až 12
- %D – tento symbol formátu zobrazuje číselnou hodnotu dne v měsíci následovanou příponou, jako je 1. nebo 2.
- %e – tento symbol formátu zobrazuje číselnou hodnotu dne v měsíci. je omezena na 0 až 31
- %f – tento symbol formátu ukazuje mikrosekundy. je omezena od 000000 do 999999.
- %H – tento symbol formátu označuje hodinu. Je omezena od 00 do 23.
- %i – tento symbol formátu zobrazuje minuty. je omezena na 00 až 59.
- %j – tento symbol formátu zobrazuje den v roce. je omezena na 001 až 366.
- %M – tento symbol formátu označuje název měsíce. je omezena od ledna do prosince
- %p – tento symbol formátu zobrazuje PM nebo AM
- %S – tento symbol formátu zobrazuje sekundy. je omezena na 00 až 59
- %U – tento symbol formátu zobrazuje dny v týdnu, kdy prvním dnem je neděle. Je omezena na 00 až 53.
- %W – tento symbol formátu zobrazuje dny v týdnu od neděle do soboty
- %Y – tento symbol formátu zobrazuje číselnou hodnotu roku jako 4místné číslo
Formáty uvedené výše vracejí formátované datum.
Příklad 1:
Chcete-li extrahovat nebo zobrazit rok z aktuálního data, provedeme následující příkazový řádek:
SELECT DATE_FORMAT("2021-09-25", "%Y");
Výstup:
Příklad 2:
Extrahujte název měsíce z daného data, jak je uvedeno níže:
2021-09-25
SELECT DATE_FORMAT("2021-09-25", "%M");
Výstup:
Příklad 3:
Extrahujte hodiny a minuty z níže uvedeného data:
2021-09-25
SELECT DATE_FORMAT("2021-09-25 10:20:23", "%H %i");
Výstup:
Příklad 4:
Odeberte den v měsíci číselně z data uvedeného níže:
2021-09-25
SELECT DATE_FORMAT("2021-09-25", "%D");
Výstup:
Příklad 5:
Extrahujte měsíc, den a rok ze zde uvedeného data:
2021-09-25
SELECT DATE_FORMAT("2021-09-25", "%M %d %Y");
Výstup:
Datum MySQL používá formát; rrrr-mm-dd pro uložení datové hodnoty a tento formát je obvykle pevně dán bez povolení jej jakkoli měnit. Pro požadavky na úložiště MySQL by k uložení jedné hodnoty data potřebovala asi 3 bajty a měla by hodnotu data v rozsahu od 1000-01-01 do 9999-12-31. Uživatel, který potřebuje uložit rozsah dat mimo tyto parametry, je tedy možný pouze prostřednictvím celých čísel. Tento proces je však poměrně náročný a vyžadovalo by to, abyste vytvořili tři sloupce, jeden pro rok, další pro měsíc a poslední pro den.
To se často nedoporučuje zkoušet při většině příležitostí, pokud chcete změnit formát data. Zakázání „přísného režimu“ pomůže převést jakékoli neplatné datum na „hodnotu nulového data“. Neplatné datum v tomto případě nebude odpovídat standardnímu formátu data MySQL, například 2020-01-24. To by také vyvolalo potřebu vyvinout „uložené funkce“, které by reprodukovaly nově vytvořené funkce data MySQL.
Hodnoty data MySQL s 2místnými roky
MySQL bude akceptovat dvoumístné hodnoty roku pouze za následujících podmínek:
- Hodnoty roku mezi 00-69 jsou převedeny na 2000-2069
- Hodnoty roku mezi 70–79 jsou převedeny na roky 1970–1999
Je však vhodné vyhnout se používání hodnot data se dvěma číslicemi, protože je to nejednoznačné.
Zde je příklad. Vytvoří se tabulka s názvem ‚people‘ a má sloupce ‚datové typy‘:
VYTVOŘIT TABULKU, POKUD NEEXISTUJE osoby ( JOB_ID celé číslo NENÍ NULL UNIKÁTNÍ PRIMÁRNÍ KLÍČ, JOB_TITLE varchar(35) NOT NULL DEFAULT ' ', MIN_SALARY desítkové (6,0) DEFAULT 8000, MAX_SALARY desítkové (6,0) DEFAULT =InnoDB;
Následující funkce ‚vloží řádek‘ do tabulky ‚osoby‘:
INSERT INTO people(JOB_ID, JOB_TITLE, MIN_SALARY, MAX_SALARY)
VALUES('5', 'Foss', '2000', '2000');
Nyní ‚Dotaz na data‘ z tabulky ‚lidé‘
SELECT * FROM people;
Po spuštění výše uvedených příkazů bude nyní možné použít možnost 2místného formátu roku pro vložení dat do tabulky ‚lidé‘:
INSERT INTO people(JOB_ID,JOB_TITLE,MIN_SALARY,MAX_SALARY,BIRTH)
VALUES('6', 'FOSSLINUX', '200', '2000', '01-09-01');„01“ bylo použito v prvním řádku jako rok, spadající mezi (rozsah 00-69). MySQL jej poté převede na 2001, zatímco ve druhém řádku spadá použití ‚84‘ do rozsahu (70-99) a MySQL jej převede na 1984.
Funkce data MySQL
MySQL často poskytuje a používá několik datových funkcí, které uživatelům pomáhají efektivněji a rychleji manipulovat s jejich daty.
Například použití funkce „NOW( )“ pomáhá načíst aktuální datum a čas:VYBRAT HNED ( );Chcete-li získat pouze datovou část „DATETIME“, použijte pouze funkci „DATE( )“:
VYBRAT DATUM(NYNÍ( ) );Chcete-li získat aktuální systémové datum, použijte CURDATE ( ):
SELECT CURDATE();K formátování hodnoty data do tohoto formátu lze použít funkci ‚DATE_FORMAT‘; mm/dd/rrrr. Používá vzor formátu data %m/%d/%Y
SELECT DATE_FORMAT('2021-09-25 22:23:00', '%W %D %M %Y');Pokud chcete vypočítat počet dní mezi dvěma hodnotami data, použijte funkci „DATEDIFF“:
mysql> SELECT DATEDIFF('2020-09-25', '2021-09-25') days;Použití funkce „DATE_ADD“ pomáhá přidat několik let, měsíců, týdnů nebo dní:
SELECT DATE_ADD('2021-09-25', INTERVAL 31 DAY);Funkci „DATE_SUB“ lze také použít k odečtení intervalu data:
SELECT DATE_SUB("2021-09-25", INTERVAL 10 DAY);Použití odpovídající funkce, pokud jde o datum, měsíc, čtvrtletí a rok, vám pomůže získat přesný den, měsíc atd. pro hodnotu data, jak je uvedeno níže:
SELECT DAY('2000-12-31') den,
MONTH( '2000-12-31') měsíc
QUARTER('2000-12-31') čtvrtletí,
ROK('2000-12-31') rok
Den ǀ měsíc ǀ čtvrtletí ǀ rok ǀ
31 ǀ 12 ǀ 4 ǀ 2000ǀTýdenní informace o souvisejících funkcích lze získat prostřednictvím:
SELECT
WEEKDAY('2000-12-31') všední den,
WEEK( '2000-12-31') týden,
WEEKOFTHEYEAR('2000-12-31') weekofyear;
pracovní den ǀ týden ǀ týdenrok ǀ
6 ǀ 53 ǀ 52 ǀFunkce týdne vždy vrací číslo týdne s indexem založeným na nule. Abyste tomu zabránili, budete muset předat druhý argument nebo předat „0“. Předáním „1“ se vrátí číslo týdne „1-indexováno“.
WEEKDAY('2000-12-31') všední den,
WEEK( '2000-12-31', 1) týden,
WEEKOFTHEAR('2000-12-31') weekofyear;
všední den ǀ týden ǀ týdenrok ǀ
6 ǀ 52 ǀ 52 ǀZávěr
Toto je krátký výukový program, který pokrývá téma formátu data MySQL. Doufáme, že byly pokryty všechny aspekty, se kterými jste se chtěli seznámit s formáty data MySQL. Nezapomeňte dát palec nahoru v sekci komentářů, pokud vám článek přijde užitečný.