В MariaDB, DAYNAME() е вградена функция за дата и час, която връща името на деня от седмицата за дадена дата.
Той приема един аргумент, който е датата, от която искате да извлечете името на деня.
Синтаксис
Синтаксисът е така:
DAYNAME(date)
Където date е датата, от която да получите името на деня.
Пример
Ето един пример:
SELECT DAYNAME('2045-10-17'); Резултат:
<пред>+-----------------------+| DAYNAME('2045-10-17') |+-----------------------+| вторник |+-----------------------+Език
Езикът, използван за името на деня, се контролира от стойността на lc_time_names системна променлива.
Ето пример, който показва как това се отразява на резултата:
SET lc_time_names = 'de_DE';
SELECT DAYNAME('2045-10-17'); Резултат:
<пред>+-----------------------+| DAYNAME('2045-10-17') |+-----------------------+| Диенстаг |+-----------------------+
И превключване обратно към en_US , което е по подразбиране:
SET lc_time_names = 'en_US';
SELECT DAYNAME('2045-10-17'); Резултат:
<пред>+-----------------------+| DAYNAME('2045-10-17') |+-----------------------+| вторник |+-----------------------+Ето списък с локали, поддържани от MariaDB, и ето как да върнете свой собствен списък с налични локали.
Докато сме на това, ето публикация, която обяснява как да проверите стойността на вашите lc_time_names системна променлива.
Стойности за дата и час
Работи и със стойности за дата и час:
SELECT DAYNAME('2030-01-25 10:30:45'); Резултат:
+--------------------------------+| DAYNAME('2030-01-25 10:30:45') |+--------------------------------+ | петък |+--------------------------------+ Нула дни
Наличието на нулев ден в датата връща null :
SELECT DAYNAME('2030-00-00'); Резултат:
<пред>+-----------------------+| DAYNAME('2030-00-00') |+-----------------------+| NULL |+-----------------------+Числови дати
Възможно е също да предавате дати като число, стига да има смисъл като дата.
Пример
SELECT DAYNAME(20201108); Резултат:
+------------------+| DAYNAME(20201108) |+------------------+| Неделя |+------------------+
Годините с две цифри са добри:
SELECT DAYNAME(201108); Резултат:
+-----------------+| DAYNAME(201108) |+----------------+| Неделя |+-----------------+
Но трябва да има смисъл като среща. Ето какво се случва, ако увелича частта от месеца до невалиден месец:
SELECT DAYNAME(209908); Резултат:
+-----------------+| ИМЕ НА ДЕН(209908) |+----------------+| NULL |++-----------------+
Други ограничители
Можете да използвате други разделители за датата. MariaDB е доста прощаваща, когато става въпрос за разделители на дати. Ето няколко валидни примера:
SELECT
DAYNAME('2027/08/19'),
DAYNAME('2027,08,19'),
DAYNAME('2027:08:19'),
DAYNAME('2027;08!19'); Резултат (с помощта на вертикален изход):
DAYNAME('2027/08/19'):ThursdayDAYNAME('2027,08,19'):ThursdayDAYNAME('2027:08:19'):ThursdayDAYNAME('2027;08!19'):Четвъртъкпредварително> Текуща дата
Можем да предадем NOW() като аргумент за дата, за да използвате текущата дата:
SELECT
NOW(),
DAYNAME(NOW());
Резултат:
+---------------------+----------------+| СЕГА() | ИМЕ НА ДЕН(СЕГА()) |+---------------------+----------------+| 13.05.2021 13:29:10 | четвъртък |+---------------------+----------------+
Невалидни аргументи
Когато се подаде невалиден аргумент, DAYNAME() връща null :
SELECT DAYNAME('Dang!');
Резултат:
+-----------------+| DAYNAME('Дан!') |+-----------------+| NULL |+------------------+ Липсващ аргумент
Извикване на DAYNAME() с грешен брой аргументи или без подаване на аргументи, води до грешка:
SELECT DAYNAME();
Резултат:
ГРЕШКА 1582 (42000):Неправилен брой на параметрите в извикването на естествената функция „DAYNAME“
И още един пример:
SELECT DAYNAME('2030-01-25', '2045-05-08');
Резултат:
ГРЕШКА 1582 (42000):Неправилен брой на параметрите в извикването на естествената функция „DAYNAME“