En MariaDB, MAKEDATE()
es una función de fecha y hora incorporada que devuelve una fecha, según el año y el día del año proporcionados como argumentos.
Sintaxis
La sintaxis es así:
MAKEDATE(year,dayofyear)
Ejemplo
He aquí un ejemplo:
SELECT MAKEDATE(2030, 10);
Resultado:
+--------------------+ | MAKEDATE(2030, 10) | +--------------------+ | 2030-01-10 | +--------------------+
Y otro más:
SELECT MAKEDATE(2030, 100);
Resultado:
+---------------------+ | MAKEDATE(2030, 100) | +---------------------+ | 2030-04-10 | +---------------------+
Devolver una fecha en un año futuro
Si el segundo argumento (día del año) es mayor que el número de días del año, la fecha resultante es un año futuro.
Ejemplo:
SELECT
MAKEDATE(2030, 366),
MAKEDATE(2030, 700),
MAKEDATE(2030, 7000);
Resultado:
+---------------------+---------------------+----------------------+ | MAKEDATE(2030, 366) | MAKEDATE(2030, 700) | MAKEDATE(2030, 7000) | +---------------------+---------------------+----------------------+ | 2031-01-01 | 2031-12-01 | 2049-03-01 | +---------------------+---------------------+----------------------+
Cero Días
El segundo argumento (día del año) debe ser mayor que 0
o el resultado es null
.
Ejemplo:
SELECT
MAKEDATE(2030, 366),
MAKEDATE(2030, 700),
MAKEDATE(2030, 7000);
Resultado:
+---------------------+---------------------+----------------------+ | MAKEDATE(2030, 366) | MAKEDATE(2030, 700) | MAKEDATE(2030, 7000) | +---------------------+---------------------+----------------------+ | 2031-01-01 | 2031-12-01 | 2049-03-01 | +---------------------+---------------------+----------------------+
Argumento faltante
Llamando a MAKEDATE()
con el número incorrecto de argumentos, o sin pasar ningún argumento, da como resultado un error:
SELECT MAKEDATE();
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'MAKEDATE'
Y otro ejemplo:
SELECT MAKEDATE( 2020, 10, 20 );
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'MAKEDATE'
Hágase un tiempo
Ver también MAKETIME()
para construir un valor de tiempo a partir de sus horas, minutos y segundos.