В MariaDB, MONTH()
е вградена функция за дата и час, която връща месеца от даден израз за дата.
Той приема един аргумент, който е датата, от която искате да извлечете месеца.
Връща месеца като число в диапазона 1
до 12
от януари до декември. Ако датата има част от нула месеца (напр. 0000-00-00
или 2025-00-00
), резултатът е 0
.
Синтаксис
Синтаксисът е така:
MONTH(date)
Където date
е изразът за дата, от който да получите месеца.
Пример
Ето един пример:
SELECT MONTH('2030-08-01');
Резултат:
+---------------------+ | MONTH('2030-08-01') | +---------------------+ | 8 | +---------------------+
Стойности за дата и час
Работи и със стойности за дата и час:
SELECT MONTH('2030-08-01 10:30:45');
Резултат:
+------------------------------+ | MONTH('2030-08-01 10:30:45') | +------------------------------+ | 8 | +------------------------------+
Нула месеца
Нула месеца води до 0
.
Пример:
SELECT MONTH('2030-00-00');
Резултат:
+---------------------+ | MONTH('2030-00-00') | +---------------------+ | 0 | +---------------------+
Числови дати
Възможно е също да предавате дати като число, стига да има смисъл като дата.
Пример
SELECT MONTH(20301125);
Резултат:
+-----------------+ | MONTH(20301125) | +-----------------+ | 11 | +-----------------+
Или дори следното (което използва двуцифрена година):
SELECT MONTH(301125);
Резултат:
+---------------+ | MONTH(301125) | +---------------+ | 11 | +---------------+
Но трябва да има смисъл като среща. Ето какво се случва, ако увелича частта от деня до невалиден ден:
SELECT MONTH(20301135);
Резултат:
+-----------------+ | MONTH(20301135) | +-----------------+ | NULL | +-----------------+
Други ограничители
Можете да използвате други разделители за датата. MariaDB е доста прощаваща, когато става въпрос за разделители на дати. Ето няколко валидни примера:
SELECT
MONTH('2030/06/25'),
MONTH('2030,06,25'),
MONTH('2030:06:25'),
MONTH('2030;06!25');
Резултат (с помощта на вертикален изход):
MONTH('2030/06/25'): 6 MONTH('2030,06,25'): 6 MONTH('2030:06:25'): 6 MONTH('2030;06!25'): 6MONTH('2030/06/25'):предварително>
Текуща дата
Можем да предадем NOW()
като аргумент datetime, за да използвате текущата дата:
SELECT
NOW(),
MONTH(NOW());
Резултат:
+---------------------+--------------+ | NOW() | MONTH(NOW()) | +---------------------+--------------+ | 2021-05-16 15:00:06 | 5 | +---------------------+--------------+
Невалидни аргументи
Когато се подаде невалиден аргумент, MONTH()
връща null
:
SELECT MONTH('2030-65-78');
Резултат:
+---------------------+ | MONTH('2030-65-78') | +---------------------+ | NULL | +---------------------+
Липсващ аргумент
Извикване на MONTH()
с грешен брой аргументи или без подаване на аргументи, води до грешка:
SELECT MONTH();
Резултат:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
И още един пример:
SELECT MONTH('2030-12-10', '2031-12-10');
Резултат:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' '2031-12-10')' at line 1