I MariaDB, MAKEDATE() är en inbyggd datum- och tidsfunktion som returnerar ett datum, baserat på år och dag på året som anges som argument.
Syntax
Syntaxen ser ut så här:
MAKEDATE(year,dayofyear) Exempel
Här är ett exempel:
SELECT MAKEDATE(2030, 10); Resultat:
+--------------------+ | MAKEDATE(2030, 10) | +--------------------+ | 2030-01-10 | +--------------------+
Och en till:
SELECT MAKEDATE(2030, 100); Resultat:
+---------------------+ | MAKEDATE(2030, 100) | +---------------------+ | 2030-04-10 | +---------------------+
Tillbaka ett datum under ett kommande år
Om det andra argumentet (dagen på året) är större än antalet dagar på året, är det resulterande datumet ett framtida år.
Exempel:
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 | +---------------------+---------------------+----------------------+
Noll dagar
Det andra argumentet (dagen på året) måste vara större än 0 eller så är resultatet null .
Exempel:
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 | +---------------------+---------------------+----------------------+
Argument saknas
Anropar MAKEDATE() med fel antal argument, eller utan att skicka några argument, resulterar i ett fel:
SELECT MAKEDATE(); Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'MAKEDATE'
Och ett annat exempel:
SELECT MAKEDATE( 2020, 10, 20 ); Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'MAKEDATE'
Gör en tid
Se även MAKETIME() för att konstruera ett tidsvärde från dess timmar, minuter och sekunder.