В MariaDB, DAY()
е синоним на DAYOFMONTH()
. Връща деня от месеца от дадена дата.
Той приема един аргумент, който е датата, от която искате да върнете деня от месеца.
Резултатът е в диапазона 1
до 31
. Въпреки това, ако датата има част от нулев ден (например '0000-00-00'
или '2021-00-00'
), резултатът е 0
.
Синтаксис
Синтаксисът е така:
DAY(date)
Където date
е датата, от която да извлечете деня.
Пример
Ето един пример:
SELECT DAY('2045-05-18');
Резултат:
+------------------+| DAY('2045-05-18') |+-------------------+| 18 |+------------------+
Стойности за дата и час
Работи и със стойности за дата и час:
SELECT DAY('2045-05-18 01:10:15');
Резултат:
+----------------------------+| DAY('2045-05-18 01:10:15') |+----------------------------+| 18 |+----------------------------+
Нула дни
Ето пример, който използва нулев ден в датата:
SELECT DAY('0000-00-00');
Резултат:
+------------------+| ДЕН('0000-00-00') |+------------------+| 0 |+------------------+
Числови дати
Възможно е също да предавате дати като число, стига да има смисъл като дата.
Пример
SELECT DAY(20220308);
Резултат:
+---------------+| ДЕН(20220308) |+--------------+| 8 |+--------------+
Или дори следното (което използва двуцифрена година):
SELECT DAY(220308);
Резултат:
+------------+| ДЕН(220308) |+------------+| 8 |+------------+
Но трябва да има смисъл като среща. Ето какво се случва, ако увелича частта от деня до невалиден ден:
SELECT DAY(220358);
Резултат:
+------------+| ДЕН(220358) |+------------+| NULL |+------------+
Други ограничители
Можете да използвате други разделители за датата. MariaDB е доста прощаваща, когато става въпрос за разделители на дати. Ето няколко валидни примера:
SELECT
DAY('2028/12/30'),
DAY('2028,12,30'),
DAY('2028:12:30'),
DAY('2028;12!30');
Резултат (с помощта на вертикален изход):
DAY('2028/12/30'):30DAY('2028,12,30'):30DAY('2028:12:30'):30DAY('2028;12!30'):30предварително>Текуща дата
Можем да предадем
NOW()
като аргумент за дата, за да използвате текущата дата:SELECT NOW(), DAY(NOW());
Резултат:
+---------------------+-----------+| СЕГА() | ДЕН(СЕГА()) |+---------------------+-----------+| 2021-05-13 09:41:03 | 13 |+---------------------+-----------+Невалидни аргументи
Когато се подаде невалиден аргумент,
DAY()
връщаnull
:SELECT DAY('Oops!');
Резултат:
+--------------+| DAY('Ами сега!') |+--------------+| NULL |+--------------+Липсващ аргумент
Извикване на
DAY()
с грешен брой аргументи или без подаване на аргументи, води до грешка:SELECT DAY();
Резултат:
ГРЕШКА 1064 (42000):Имате грешка във вашия SQL синтаксис; проверете ръководството, което съответства на вашата версия на сървъра на MariaDB за правилния синтаксис, който да използвате близо до ')' на ред 1И още един пример:
SELECT DAY('2030-01-25', '2045-05-08');
Резултат:
ГРЕШКА 1064 (42000):Имате грешка във вашия SQL синтаксис; проверете ръководството, което съответства на вашата версия на сървъра на MariaDB, за правилния синтаксис, който да използвате близо до „2045-05-08“)“ на ред 1