В MariaDB, MAKEDATE()
е вградена функция за дата и час, която връща дата въз основа на годината и деня от годината, предоставени като аргументи.
Синтаксис
Синтаксисът е така:
MAKEDATE(year,dayofyear)
Пример
Ето един пример:
SELECT MAKEDATE(2030, 10);
Резултат:
+--------------------+ | MAKEDATE(2030, 10) | +--------------------+ | 2030-01-10 | +--------------------+
И още един:
SELECT MAKEDATE(2030, 100);
Резултат:
+---------------------+ | MAKEDATE(2030, 100) | +---------------------+ | 2030-04-10 | +---------------------+
Върнете дата в бъдеща година
Ако вторият аргумент (ден от годината) е по-голям от броя на дните в годината, тогава получената дата е бъдеща година.
Пример:
SELECT
MAKEDATE(2030, 366),
MAKEDATE(2030, 700),
MAKEDATE(2030, 7000);
Резултат:
+---------------------+---------------------+----------------------+ | MAKEDATE(2030, 366) | MAKEDATE(2030, 700) | MAKEDATE(2030, 7000) | +---------------------+---------------------+----------------------+ | 2031-01-01 | 2031-12-01 | 2049-03-01 | +---------------------+---------------------+----------------------+
Нула дни
Вторият (ден от годината) аргумент трябва да е по-голям от 0
или резултатът е null
.
Пример:
SELECT
MAKEDATE(2030, 366),
MAKEDATE(2030, 700),
MAKEDATE(2030, 7000);
Резултат:
+---------------------+---------------------+----------------------+ | MAKEDATE(2030, 366) | MAKEDATE(2030, 700) | MAKEDATE(2030, 7000) | +---------------------+---------------------+----------------------+ | 2031-01-01 | 2031-12-01 | 2049-03-01 | +---------------------+---------------------+----------------------+
Липсващ аргумент
Извикване на MAKEDATE()
с грешен брой аргументи или без подаване на аргументи, води до грешка:
SELECT MAKEDATE();
Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'MAKEDATE'
И още един пример:
SELECT MAKEDATE( 2020, 10, 20 );
Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'MAKEDATE'
Намерете време
Вижте също MAKETIME()
за конструиране на времева стойност от неговите часове, минути и секунди.