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.