sql >> Databáze >  >> RDS >> MariaDB

Vysvětlení složených jednotek data a času MariaDB

MariaDB obsahuje spoustu jednotek data a času, které můžete použít při práci s hodnotami data a času. Například MONTH je jednotka a HOUR je další jednotka.

Některé jednotky jsou složené jednotky. Složené jednotky jsou, když se dvě jednotky spojí do jedné. Konvence pojmenování je taková, že každý název jednotky je oddělen podtržítkem. Například MINUTE_SECOND je na minuty a sekundy.

Níže je uvedeno několik příkladů, které demonstrují, jak složené jednotky fungují v MariaDB.

Seznam složených jednotek

Nejprve je zde seznam složených jednotek dostupných v MariaDB:

Jednotka Popis
SECOND_MICROSECOND Sekundy.Mikrosekundy
MINUTE_MICROSECOND Minutes.Seconds.Microseconds
MINUTE_SECOND Minutes.Seconds
HOUR_MICROSECOND Hours.Minutes.Seconds.Microseconds
HOUR_SECOND Hours.Minutes.Seconds
HOUR_MINUTE Hours.Minutes
DAY_MICROSECOND Dny Hodiny.Minuty.Sekundy.Mikrosekundy
DAY_SECOND Dny Hodiny.Minuty.Sekundy
DAY_MINUTE Dny Hodiny.Minuty
DAY_HOUR Dny Hodiny
YEAR_MONTH roky-měsíce

Pouhý pohled na jejich jména poskytuje docela dobré vodítko o tom, co dělají.

Složené jednotky (jako každá jiná jednotka data/času) lze použít při extrakci částí hodnoty data/času a také při provádění věcí, jako je přičítání a odečítání časového intervalu od hodnoty data/času.

Ty lze použít s + a - operátory při provádění aritmetiky na datech, s funkcemi jako ADDDATE() , SUBDATE() , DATE_ADD() , DATE_SUB() , EXTRACT() , TIMESTAMPADD() a TIMESTAMPDIFF() .

Mohou být také použity v ON SCHEDULE klauzule CREATE_EVENT() a ALTER_EVENT() funkce.

Příklad – Extrakce složených jednotek

Jednotky data a času lze použít s řadou různých funkcí a v různých jiných kontextech. Jednou z funkcí, které přijímají tyto jednotky, je EXTRACT() funkce. Tato funkce vrací zadanou jednotku data/času z dané hodnoty data nebo data a času.

Zde je příklad použití složené jednotky k extrakci roku a měsíce z data:

SELECT EXTRACT(YEAR_MONTH FROM '2030-12-25');

Výsledek:

+---------------------------------------+
| EXTRACT(YEAR_MONTH FROM '2030-12-25') |
+---------------------------------------+
|                                203012 |
+---------------------------------------+

Vidíme, že rok a měsíc jsou vráceny jako jedna hodnota.

Příklad – sčítání/odečítání složených jednotek

Složené jednotky lze také použít k přidávání a odečítání datových a časových intervalů.

Příklad:

SELECT '2030-12-25' + INTERVAL '2:08' DAY_HOUR;

Výsledek:

+-----------------------------------------+
| '2030-12-25' + INTERVAL '2:08' DAY_HOUR |
+-----------------------------------------+
| 2030-12-27 08:00:00                     |
+-----------------------------------------+

V tomto případě existují dvě části, které je třeba mít na paměti, pokud jde o kompozitní jednotku.

Stejně jako v předchozím příkladu jsme použili složenou jednotku (v tomto případě DAY_HOUR ). S ohledem na skutečný interval, který se má přidat, jsme použili dvojtečku k oddělení každé strany složené jednotky.

V tomto případě jsme zadali '2:08' , což k hodnotě data přidalo 2 dny a 8 hodin. Původní datum nemá časovou část, a proto se předpokládá, že počáteční čas je 00:00:00 .

MariaDB je přiměřeně shovívavá s přísností formátu. Stejného efektu můžeme dosáhnout použitím různých oddělovačů a také vynecháním úvodní nuly.

Zde je další příklad, který používá DATE_ADD() funkce s různými časovými intervaly:

SELECT DATE_ADD('2030-12-25', INTERVAL '2!8' DAY_HOUR);

Výsledek:

+-------------------------------------------------+
| DATE_ADD('2030-12-25', INTERVAL '2!8' DAY_HOUR) |
+-------------------------------------------------+
| 2030-12-27 08:00:00                             |
+-------------------------------------------------+

Zde je několik dalších příkladů různých složených jednotek:

SELECT 
    DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:2' YEAR_MONTH) AS "YEAR_MONTH",
    DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:25:35' HOUR_SECOND) AS "HOUR_SECOND",
    DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:30' DAY_MINUTE) AS "DAY_MINUTE";

Výsledek:

+---------------------+---------------------+---------------------+
| YEAR_MONTH          | HOUR_SECOND         | DAY_MINUTE          |
+---------------------+---------------------+---------------------+
| 2022-07-01 10:00:00 | 2021-05-01 11:25:35 | 2021-05-01 11:30:00 |
+---------------------+---------------------+---------------------+


  1. Java:Volání uložené procedury v databázi Oracle

  2. Milisekundy v mém DateTime se při uložení na SQL Server změní

  3. Jak odstranit duplicitní řádky bez jedinečného identifikátoru

  4. Zbytek v PostgreSQL, MS SQL Server, MySQL a SQLite