sql >> Databáze >  >> RDS >> Mysql

Formát data MySQL – co potřebujete vědět

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:

  1. Hodnoty roku mezi 00-69 jsou převedeny na 2000-2069
  2. 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ý.


  1. Jak mohu zastavit skript Postgres, když narazí na chybu?

  2. Jak Access komunikuje se zdroji dat ODBC? Část 3

  3. Oracle - Jak vytvořit uživatele pouze pro čtení

  4. Plně rozumím PDO ATTR_PERSISTENT