MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Objaśnienie złożonych jednostek daty i czasu MariaDB

MariaDB zawiera kilka jednostek daty i godziny, których można używać podczas pracy z wartościami daty i godziny. Na przykład MONTH jest jednostką, a HOUR to kolejna jednostka.

Niektóre jednostki są jednostkami złożonymi. Jednostki złożone mają miejsce, gdy dwie jednostki łączą się w jedną. Konwencja nazewnictwa jest taka, że ​​każda nazwa jednostki jest oddzielona podkreśleniem. Na przykład MINUTE_SECOND dotyczy minut i sekund.

Poniżej znajduje się kilka przykładów, które pokazują, jak działają jednostki złożone w MariaDB.

Lista jednostek złożonych

Po pierwsze, oto lista jednostek złożonych dostępnych w MariaDB:

Jednostka Opis
SECOND_MICROSECOND Sekundy.Mikrosekundy
MINUTE_MICROSECOND Minuty.Sekundy.Mikrosekundy
MINUTE_SECOND Minuty.Sekundy
HOUR_MICROSECOND Godziny.Minuty.Sekundy.Mikrosekundy
HOUR_SECOND Godziny.Minuty.Sekundy
HOUR_MINUTE Godziny.Minuty
DAY_MICROSECOND Dni Godziny.Minuty.Sekundy.Mikrosekundy
DAY_SECOND Dni Godziny.Minuty.Sekundy
DAY_MINUTE Dni Godziny.Minuty
DAY_HOUR Dni Godziny
YEAR_MONTH Lata-miesiące

Już samo spojrzenie na ich nazwiska daje całkiem niezłą wskazówkę, co robią.

Jednostki złożone (jak w przypadku każdej jednostki daty/czasu) mogą być używane podczas wyodrębniania części wartości daty/czasu, a także podczas wykonywania czynności takich jak dodawanie i odejmowanie przedziału czasu od wartości daty/czasu.

Można ich używać z + i - operatory podczas wykonywania arytmetyki na datach z funkcjami takimi jak ADDDATE() , SUBDATE() , DATE_ADD() , DATE_SUB() , EXTRACT() , TIMESTAMPADD() i TIMESTAMPDIFF() .

Mogą być również używane w ON SCHEDULE klauzula CREATE_EVENT() i ALTER_EVENT() funkcje.

Przykład – wyodrębnianie jednostek złożonych

Jednostki daty i czasu mogą być używane z wieloma różnymi funkcjami oraz w różnych innych kontekstach. Jedną z funkcji akceptujących te jednostki jest EXTRACT() funkcjonować. Ta funkcja zwraca określoną jednostkę daty/czasu z podanej wartości daty lub czasu.

Oto przykład użycia jednostki złożonej do wyodrębnienia roku i miesiąca z daty:

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

Wynik:

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

Widzimy, że rok i miesiąc są zwracane jako jedna wartość.

Przykład – dodawanie/odejmowanie jednostek złożonych

Jednostki złożone mogą być również używane do dodawania i odejmowania przedziałów daty i czasu.

Przykład:

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

Wynik:

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

W tym przypadku należy pamiętać o dwóch częściach w odniesieniu do jednostki złożonej.

Podobnie jak w poprzednim przykładzie, użyliśmy jednostki złożonej (w tym przypadku DAY_HOUR ). Jeśli chodzi o rzeczywisty odstęp do dodania, użyliśmy dwukropka do oddzielenia każdej strony jednostki złożonej.

W tym przypadku określiliśmy '2:08' , który dodał 2 dni i 8 godzin do wartości daty. Oryginalna data nie zawiera części czasowej, dlatego zakłada się, że początkowy czas to 00:00:00 .

MariaDB rozsądnie wybacza surowość formatu. Ten sam efekt możemy uzyskać, używając różnych separatorów, a także pomijając wiodące zero.

Oto kolejny przykład, w którym użyto DATE_ADD() funkcja z różnymi przedziałami czasowymi:

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

Wynik:

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

Oto kilka przykładów różnych jednostek złożonych:

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";

Wynik:

+---------------------+---------------------+---------------------+
| 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Odblokowywanie korzyści programu Certyfikowany partner MariaDB

  2. Wiesz, że chcesz:Migracja z Oracle do MariaDB

  3. Co nowego w MariaDB 10.4

  4. Dodaj znak procentu do numeru w MariaDB

  5. MariaDB LOCALTIMESTAMP() Objaśnienie