В MariaDB, MONTHNAME()
е вградена функция за дата и час, която връща името на името на месеца за дадена дата.
Той приема един аргумент, който е датата, от която искате да извлечете името на месеца.
Синтаксис
Синтаксисът е така:
MONTHNAME(date)
Където date
е датата, от която да получите името на месеца.
Пример
Ето един пример:
SELECT MONTHNAME('2041-11-14');
Резултат:
+------------------------+| MONTHNAME('2041-11-14') |+-------------------------+| ноември |+------------------------+
Език
Езикът, използван за името на месеца, се контролира от стойността на lc_time_names
системна променлива.
Ето пример, който показва как това се отразява на резултата:
SET lc_time_names = 'es_AR';
SELECT MONTHNAME('2041-11-14');
Резултат:
+------------------------+| MONTHNAME('2041-11-14') |+-------------------------+| новиембре |+------------------------+
И превключване обратно към en_US
, което е по подразбиране:
SET lc_time_names = 'en_US';
SELECT MONTHNAME('2041-11-14');
Резултат:
+------------------------+| MONTHNAME('2041-11-14') |+-------------------------+| ноември |+------------------------+
Ето списък с локали, поддържани от MariaDB, и ето как да върнете свой собствен списък с налични локали.
И ето публикация, обясняваща как да проверите стойността на вашите lc_time_names
системна променлива.
Стойности за дата и час
Работи и със стойности за дата и час:
SELECT MONTHNAME('2041-01-15 10:30:45');
Резултат:
+---------------------------------+| MONTHNAME('2041-01-15 10:30:45') |+-------------------------------- -+| януари |+----------------------------------+
Нула месеца
Наличието на нулев месец в датата връща null
:
SELECT MONTHNAME('2030-00-00');
Резултат:
+------------------------+| MONTHNAME('2030-00-00') |+-------------------------+| NULL |+------------------------+
Числови дати
Възможно е също да предавате дати като число, стига да има смисъл като дата.
Пример
SELECT MONTHNAME(20201208);
Резултат:
+---------------------+| MONTHNAME(20201208) |+---------------------+| декември |+---------------------+
Годините с две цифри са добри:
SELECT MONTHNAME(201208);
Резултат:
+------------------+| ИМЕ НА МЕСЕЦ(201208) |+------------------+| декември |+------------------+
Но трябва да има смисъл като среща. Ето какво се случва, ако увелича частта от деня до невалиден ден:
SELECT MONTHNAME(201299);
Резултат:
+------------------+| ИМЕ НА МЕСЕЦ(201299) |+------------------+| NULL |+-------------------+
Други ограничители
Можете да използвате други разделители за датата. MariaDB е доста прощаваща, когато става въпрос за разделители на дати. Ето няколко валидни примера:
SELECT
MONTHNAME('2027/08/19'),
MONTHNAME('2027,08,19'),
MONTHNAME('2027:08:19'),
MONTHNAME('2027;08!19');
Резултат (с помощта на вертикален изход):
MONTHNAME('2027/08/19'):AugustMONTHNAME('2027,08,19'):AugustMONTHNAME('2027:08:19'):AugustMONTHNAME('2027;08!19'):Августпредварително>Текуща дата
Можем да предадем
NOW()
като аргумент за дата, за да използвате текущата дата:SELECT NOW(), MONTHNAME(NOW());
Резултат:
+---------------------+----------------+| СЕГА() | ИМЕ НА МЕСЕЦ(СЕГА()) |+---------------------+-----------------+| 14.05.2021 10:11:16 | май |+---------------------+----------------+Невалидни аргументи
Когато се подаде невалиден аргумент,
MONTHNAME()
връщаnull
:SELECT MONTHNAME('Wrong!');
Резултат:
+---------------------+| MONTHNAME('Грешно!') |+---------------------+| NULL |+---------------------+Липсващ аргумент
Извикване на
MONTHNAME()
с грешен брой аргументи или без подаване на аргументи, води до грешка:SELECT MONTHNAME();
Резултат:
ГРЕШКА 1582 (42000):Неправилен брой на параметрите в извикването на естествената функция „MONTHNAME“И още един пример:
SELECT MONTHNAME('2030-01-25', '2045-05-08');
Резултат:
ГРЕШКА 1582 (42000):Неправилен брой на параметрите в извикването на естествената функция „MONTHNAME“