MariaDB
 sql >> база данни >  >> RDS >> MariaDB

Обяснени са композитните единици за дата и час в MariaDB

MariaDB включва куп единици за дата и час, които можете да използвате, когато работите със стойности за дата и час. Например MONTH е единица и HOUR е друга единица.

Някои единици са съставни единици. Съставните единици са, когато две единици се комбинират в едно. Конвенцията за именуване е, че всяко име на единица е разделено с долна черта. Например MINUTE_SECOND е за минути и секунди.

По-долу са дадени няколко примера, които демонстрират как работят съставните единици в MariaDB.

Списък на съставните единици

Първо, ето списък на съставните единици, налични в MariaDB:

Единица Описание
SECOND_MICROSECOND Секунди.Микросекунди
MINUTE_MICROSECOND Минути.Секунди.Микросекунди
MINUTE_SECOND Минути.Секунди
HOUR_MICROSECOND Часове.Минути.Секунди.Микросекунди
HOUR_SECOND Часове.Минути.Секунди
HOUR_MINUTE Часове.Минути
DAY_MICROSECOND Дни Часове.Минути.Секунди.Микросекунди
DAY_SECOND Дни Часове.Минути.Секунди
DAY_MINUTE Дни Часове.Минути
DAY_HOUR Дни Часове
YEAR_MONTH Години-месеци

Само гледането на имената им дава доста добра представа за това какво правят.

Съставните единици (както при всяка единица за дата/час) могат да се използват при извличане на части от стойност за дата/час, а също и когато правите неща като добавяне и изваждане на интервал от време към стойност за дата/час.

Те могат да се използват с + и - оператори при извършване на аритметика на дати, с функции като ADDDATE() , SUBDATE() , DATE_ADD() , DATE_SUB() , EXTRACT() , TIMESTAMPADD() и TIMESTAMPDIFF() .

Те могат да се използват и в ON SCHEDULE клауза на CREATE_EVENT() и ALTER_EVENT() функции.

Пример – Извличане на съставни единици

Единиците за дата и час могат да се използват с куп различни функции и в различни други контексти. Една от функциите, които приемат тези единици, е EXTRACT() функция. Тази функция връща определена единица дата/час от дадена дата или стойност за дата и час.

Ето пример за използване на съставна единица за извличане на годината и месеца от дата:

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

Резултат:

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

Можем да видим, че годината и месецът се връщат като една стойност.

Пример – Добавяне/изваждане на съставни единици

Съставните единици могат да се използват и за добавяне и изваждане на интервали от дата и време.

Пример:

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

Резултат:

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

В този случай има две части, които трябва да имате предвид по отношение на композитния модул.

Както в предишния пример, използвахме съставна единица (в този случай DAY_HOUR ). По отношение на действителния интервал за добавяне, ние използвахме двоеточие, за да разделим всяка страна на съставната единица.

В този случай посочихме '2:08' , което добави 2 дни и 8 часа към стойността на датата. Оригиналната дата няма времева част и затова се приема, че първоначалният час е 00:00:00 .

MariaDB разумно прощава със строгостта на формата. Можем да постигнем същия ефект, като използваме различни разделители, а също и като пропуснем водещата нула.

Ето още един пример, който използва DATE_ADD() функция с различни интервали от време:

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

Резултат:

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

Ето още няколко примера за различни съставни единици:

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

Резултат:

+---------------------+---------------------+---------------------+
| 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. Как работи LOAD_FILE() в MariaDB

  2. Планиране за аварийно възстановяване за MySQL и MariaDB

  3. Обработка на големи транзакции с поточно репликация и MariaDB 10.4

  4. Поддръжка за MariaDB 10.4 в надстроено dbForge Studio за MySQL, v.8.1

  5. Въведение в внедряването на MySQL с помощта на Ansible роля