В 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“