I MariaDB, MAKEDATE()
er en indbygget dato- og klokkeslætsfunktion, der returnerer en dato baseret på året og dagen i året, der er angivet som argumenter.
Syntaks
Syntaksen ser sådan ud:
MAKEDATE(year,dayofyear)
Eksempel
Her er et eksempel:
SELECT MAKEDATE(2030, 10);
Resultat:
+--------------------+ | MAKEDATE(2030, 10) | +--------------------+ | 2030-01-10 | +--------------------+
Og endnu en:
SELECT MAKEDATE(2030, 100);
Resultat:
+---------------------+ | MAKEDATE(2030, 100) | +---------------------+ | 2030-04-10 | +---------------------+
Returner en dato i et kommende år
Hvis det andet (dag i året) argument er større end antallet af dage i året, er den resulterende dato et fremtidigt år.
Eksempel:
SELECT
MAKEDATE(2030, 366),
MAKEDATE(2030, 700),
MAKEDATE(2030, 7000);
Resultat:
+---------------------+---------------------+----------------------+ | MAKEDATE(2030, 366) | MAKEDATE(2030, 700) | MAKEDATE(2030, 7000) | +---------------------+---------------------+----------------------+ | 2031-01-01 | 2031-12-01 | 2049-03-01 | +---------------------+---------------------+----------------------+
Nul dage
Det andet (dag i året) argument skal være større end 0
eller resultatet er null
.
Eksempel:
SELECT
MAKEDATE(2030, 366),
MAKEDATE(2030, 700),
MAKEDATE(2030, 7000);
Resultat:
+---------------------+---------------------+----------------------+ | MAKEDATE(2030, 366) | MAKEDATE(2030, 700) | MAKEDATE(2030, 7000) | +---------------------+---------------------+----------------------+ | 2031-01-01 | 2031-12-01 | 2049-03-01 | +---------------------+---------------------+----------------------+
Manglende argument
Kalder MAKEDATE()
med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer det i en fejl:
SELECT MAKEDATE();
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'MAKEDATE'
Og endnu et eksempel:
SELECT MAKEDATE( 2020, 10, 20 );
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'MAKEDATE'
Lav en tid
Se også MAKETIME()
til at konstruere en tidsværdi ud fra dens timer, minutter og sekunder.