В 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