В MariaDB, LAST_DAY()
е вградена функция за дата и час, която връща последния ден от месеца за дадена дата.
Той приема един аргумент, който е датата, за която искате да намерите последния ден от месеца.
Синтаксис
Синтаксисът е така:
LAST_DAY(date)
Където date
е изразът за дата, за който искате да намерите последния ден от месеца.
Пример
Ето един пример:
SELECT LAST_DAY('2030-02-01');
Резултат:
+-----------------------+| LAST_DAY('2030-02-01') |+-----------------------+| 2030-02-28 |+-----------------------+
В този случай използваме дата през февруари. Както се оказва, февруари има 28 дни в тази година.
Ето какво се случва, ако увеличим датата до следващата високосна година:
SELECT LAST_DAY('2032-02-01');
Резултат:
+-----------------------+| LAST_DAY('2032-02-01') |+-----------------------+| 2032-02-29 |+-----------------------+
Стойности за дата и час
Работи и със стойности за дата и час:
SELECT LAST_DAY('2030-02-01 10:30:45');
Резултат:
+--------------------------------+| LAST_DAY('2030-02-01 10:30:45') |+-------------------------------- +| 2030-02-28 |+--------------------------------+
Нулеви дати
Нулевите дати водят до null
.
Пример:
SELECT LAST_DAY('0000-00-00');
Резултат:
+-----------------------+| LAST_DAY('0000-00-00') |+-----------------------+| NULL |+------------------------+
Числови дати
Възможно е също да предавате дати като число, стига да има смисъл като дата.
Пример
SELECT LAST_DAY(20301125);
Резултат:
+-------------------+| ПОСЛЕДЕН_ДЕН(20301125) |+-------------------+| 2030-11-30 |+-------------------+
Или дори следното (което използва двуцифрена година):
SELECT LAST_DAY(301125);
Резултат:
+-----------------+| ПОСЛЕДЕН_ДЕН(301125) |+------------------+| 2030-11-30 |+-----------------+
Но трябва да има смисъл като среща. Ето какво се случва, ако увелича частта от деня до невалиден ден:
SELECT LAST_DAY(20301135);
Резултат:
+-------------------+| ПОСЛЕДЕН_ДЕН(20301135) |+-------------------+| NULL |+-------------------+1 ред в комплект, 1 предупреждение (0,000 сек)
Можем да проверим предупреждението по следния начин:
SHOW WARNINGS;
Резултат:
+--------+------+---------------------------- ---------+| Ниво | Код | Съобщение |+--------+------+------------------------------ --------+| Предупреждение | 1292 | Неправилна стойност за дата и час:'20301135' |+--------+------+------------------------ --------------+
Други ограничители
Можете да използвате други разделители за датата. MariaDB е доста прощаваща, когато става въпрос за разделители на дати. Ето няколко валидни примера:
SELECT
LAST_DAY('2030/06/25'),
LAST_DAY('2030,06,25'),
LAST_DAY('2030:06:25'),
LAST_DAY('2030;06!25');
Резултат (с помощта на вертикален изход):
LAST_DAY('2030/06/25'):2030-06-30LAST_DAY('2030,06,25'):2030-06-30LAST_DAY('2030:06:25'):2030-06-30LAST_DAY '2030;06!25'):2030-06-30
Текуща дата
Можем да предадем NOW()
като аргумент datetime, за да използвате текущата дата:
SELECT
NOW(),
LAST_DAY(NOW());
Резултат:
<пред>+---------------------+----------------+| СЕГА() | ПОСЛЕДЕН_ДЕН(СЕГА()) |+---------------------+----------------+| 2021-05-18 09:39:01 | 31.05.2021 |+---------------------+----------------+Невалидни аргументи
Когато се подаде невалиден аргумент, LAST_DAY()
връща null
:
SELECT LAST_DAY('2030-65-78');
Резултат:
+-----------------------+| LAST_DAY('2030-65-78') |+-----------------------+| NULL |+-----------------------+1 ред в комплект, 1 предупреждение (0,000 сек)
Проверете предупреждението:
SHOW WARNINGS;
Резултат:
+--------+------+---------------------------- -----------+| Ниво | Код | Съобщение |+--------+------+------------------------------ ----------+| Предупреждение | 1292 | Неправилна стойност за дата и час:'2030-65-78' |+---------+------+------------------- --------------------+
Липсващ аргумент
Извикване на LAST_DAY()
с грешен брой аргументи или без подаване на аргументи, води до грешка:
SELECT LAST_DAY();
Резултат:
ГРЕШКА 1582 (42000):Неправилен брой на параметрите в извикването на естествената функция „LAST_DAY“
И още един пример:
SELECT LAST_DAY('2030-12-10', '2031-12-10');
Резултат:
ГРЕШКА 1582 (42000):Неправилен брой на параметрите в извикването на естествената функция „LAST_DAY“