В MariaDB, DAYOFMONTH() е вградена функция за дата и час, която връща деня от месеца от дадена дата.
Той приема един аргумент, който е датата, от която искате да извлечете деня от месеца.
Резултатът е в диапазона 1 до 31 . Въпреки това, ако датата има част от нулев ден (например '0000-00-00' или '2021-00-00' ), резултатът е 0 .
Синтаксис
Синтаксисът е така:
DAYOFMONTH(date)
Където date е датата, от която да извлечете деня.
Пример
Ето един пример:
SELECT DAYOFMONTH('2030-01-25'); Резултат:
+-------------------------+| DAYOFMONTH('2030-01-25') |+--------------------------+| 25 |+-------------------------+ Стойности за дата и час
Работи и със стойности за дата и час:
SELECT DAYOFMONTH('2030-01-25 10:30:45'); Резултат:
+---------------------------------+| DAYOFMONTH('2030-01-25 10:30:45') |+-------------------------------- --+| 25 |+----------------------------------+ Нула дни
Ето пример, който използва нулев ден в датата:
SELECT DAYOFMONTH('2030-00-00'); Резултат:
+-------------------------+| DAYOFMONTH('2030-00-00') |+--------------------------+| 0 |+-------------------------+ Числови дати
Възможно е също да предавате дати като число, стига да има смисъл като дата.
Пример
SELECT DAYOFMONTH(20300125); Резултат:
+---------------------+| DAYOFMONTH(20300125) |+---------------------+| 25 |+----------------------+
Или дори следното (което използва двуцифрена година):
SELECT DAYOFMONTH(300125); Резултат:
+-------------------+| ДЕН МЕСЕЦ(300125) |+-------------------+| 25 |+-------------------+
Но трябва да има смисъл като среща. Ето какво се случва, ако увелича частта от деня до невалиден ден:
SELECT DAYOFMONTH(20300135); Резултат:
+---------------------+| DAYOFMONTH(20300135) |+---------------------+| NULL |+----------------------+
Други ограничители
Можете да използвате други разделители за датата. MariaDB е доста прощаваща, когато става въпрос за разделители на дати. Ето няколко валидни примера:
SELECT
DAYOFMONTH('2030/01/25'),
DAYOFMONTH('2030,01,25'),
DAYOFMONTH('2030:01:25'),
DAYOFMONTH('2030;01!25'); Резултат (с помощта на вертикален изход):
DAYOFMONTH('2030/01/25'):25DAYOFMONTH('2030,01,25'):25DAYOFMONTH('2030:01:25'):25DAYOFMONTH('2030;01!25'):25предварително> Текуща дата
Можем да предадем NOW() като аргумент за дата, за да използвате текущата дата:
SELECT
NOW(),
DAYOFMONTH(NOW());
Резултат:
<пред>+---------------------+-------------------+| СЕГА() | ДЕН МЕСЕЦ(СЕГА()) |+---------------------+-------------------+ | 2021-05-13 09:02:41 | 13 |+---------------------+---------------------+ Невалидни аргументи
Когато се подаде невалиден аргумент, DAYOFMONTH() връща null :
SELECT DAYOFMONTH('Homer'); Резултат:
+---------------------+| DAYOFMONTH('Homer') |+---------------------+| NULL |+---------------------+ Липсващ аргумент
Извикване на DAYOFMONTH() с грешен брой аргументи или без подаване на аргументи, води до грешка:
SELECT DAYOFMONTH(); Резултат:
ГРЕШКА 1582 (42000):Неправилен брой на параметрите в извикването на естествената функция „DAYOFMONTH“
И още един пример:
SELECT DAYOFMONTH('2030-01-25', '2045-05-08'); Резултат:
ГРЕШКА 1582 (42000):Неправилен брой на параметрите в извикването на естествената функция „DAYOFMONTH“