В 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“