Dans MariaDB, MAKEDATE()
est une fonction de date et d'heure intégrée qui renvoie une date, basée sur l'année et le jour de l'année fournis en tant qu'arguments.
Syntaxe
La syntaxe ressemble à ceci :
MAKEDATE(year,dayofyear)
Exemple
Voici un exemple :
SELECT MAKEDATE(2030, 10);
Résultat :
+--------------------+ | MAKEDATE(2030, 10) | +--------------------+ | 2030-01-10 | +--------------------+
Et un autre :
SELECT MAKEDATE(2030, 100);
Résultat :
+---------------------+ | MAKEDATE(2030, 100) | +---------------------+ | 2030-04-10 | +---------------------+
Renvoyer une date dans une année future
Si le deuxième argument (jour de l'année) est supérieur au nombre de jours de l'année, la date résultante est une année future.
Exemple :
SELECT
MAKEDATE(2030, 366),
MAKEDATE(2030, 700),
MAKEDATE(2030, 7000);
Résultat :
+---------------------+---------------------+----------------------+ | MAKEDATE(2030, 366) | MAKEDATE(2030, 700) | MAKEDATE(2030, 7000) | +---------------------+---------------------+----------------------+ | 2031-01-01 | 2031-12-01 | 2049-03-01 | +---------------------+---------------------+----------------------+
Zéro jour
Le deuxième argument (jour de l'année) doit être supérieur à 0
ou le résultat est null
.
Exemple :
SELECT
MAKEDATE(2030, 366),
MAKEDATE(2030, 700),
MAKEDATE(2030, 7000);
Résultat :
+---------------------+---------------------+----------------------+ | MAKEDATE(2030, 366) | MAKEDATE(2030, 700) | MAKEDATE(2030, 7000) | +---------------------+---------------------+----------------------+ | 2031-01-01 | 2031-12-01 | 2049-03-01 | +---------------------+---------------------+----------------------+
Argument manquant
Appel de MAKEDATE()
avec le mauvais nombre d'arguments, ou sans passer d'arguments, génère une erreur :
SELECT MAKEDATE();
Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'MAKEDATE'
Et un autre exemple :
SELECT MAKEDATE( 2020, 10, 20 );
Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'MAKEDATE'
Prenez du temps
Voir aussi MAKETIME()
pour construire une valeur de temps à partir de ses heures, minutes et secondes.