В MariaDB, DAYOFYEAR() е вградена функция за дата и час, която връща деня от годината от дадена дата.
Той приема един аргумент, който е датата, от която искате да извлечете деня от годината.
Връща деня като число в диапазона 1 до 366 .
Синтаксис
Синтаксисът е така:
DAYOFYEAR(date)
Където date е датата, от която да получите деня от годината.
Пример
Ето един пример:
SELECT DAYOFYEAR('2030-12-25'); Резултат:
+------------------------+| DAYOFYEAR('2030-12-25') |+-------------------------+| 359 |+----------------------------------+ Стойности за дата и час
Работи и със стойности за дата и час:
SELECT DAYOFYEAR('2030-02-01 10:30:45'); Резултат:
+---------------------------------+| DAYOFYEAR('2030-02-01 10:30:45') |+-------------------------------- -+| 32 |+----------------------------------+ Нула дни
Нула дни водят до null .
Пример:
SELECT DAYOFYEAR('2030-00-00'); Резултат:
+------------------------+| DAYOFYEAR('2030-00-00') |+-------------------------+| NULL |+------------------------+ Числови дати
Възможно е също да предавате дати като число, стига да има смисъл като дата.
Пример
SELECT DAYOFYEAR(20301125); Резултат:
+---------------------+| ДЕН ГОДИНА(20301125) |+---------------------+| 329 |+---------------------+
Или дори следното (което използва двуцифрена година):
SELECT DAYOFYEAR(301125); Резултат:
+------------------+| ДЕН ГОДИНА(301125) |+------------------+| 329 |+------------------+
Но трябва да има смисъл като среща. Ето какво се случва, ако увелича частта от деня до невалиден ден:
SELECT DAYOFYEAR(20300135); Резултат:
+---------------------+| ДЕН ГОДИНА(20300135) |+---------------------+| NULL |+---------------------+
Други ограничители
Можете да използвате други разделители за датата. MariaDB е доста прощаваща, когато става въпрос за разделители на дати. Ето няколко валидни примера:
SELECT
DAYOFYEAR('2030/06/25'),
DAYOFYEAR('2030,06,25'),
DAYOFYEAR('2030:06:25'),
DAYOFYEAR('2030;06!25'); Резултат (с помощта на вертикален изход):
DAYOFYEAR('2030/06/25'):176DAYOFYEAR('2030,06,25'):176DAYOFYEAR('2030:06:25'):176DAYOFYEAR('2030;06!25'):176предварително> Текуща дата
Можем да предадем NOW() като аргумент за дата, за да използвате текущата дата:
SELECT
NOW(),
DAYOFYEAR(NOW());
Резултат:
+---------------------+----------------+| СЕГА() | ДЕН ГОДИНА(СЕГА()) |+---------------------+------------------+| 2021-05-16 09:05:57 | 136 |+---------------------+-----------------+
Невалидни аргументи
Когато се подаде невалиден аргумент, DAYOFYEAR() връща null :
SELECT DAYOFYEAR('Friday');
Резултат:
+---------------------+| DAYOFYEAR('петък') |+---------------------+| NULL |+---------------------+ Липсващ аргумент
Извикване на DAYOFYEAR() с грешен брой аргументи или без подаване на аргументи, води до грешка:
SELECT DAYOFYEAR();
Резултат:
ГРЕШКА 1582 (42000):Неправилен брой параметри в извикването на естествената функция „DAYOFYEAR“
И още един пример:
SELECT DAYOFYEAR('2030-01-25', '2045-05-08');
Резултат:
ГРЕШКА 1582 (42000):Неправилен брой параметри в извикването на естествената функция „DAYOFYEAR“