Utilice un parámetro de procedimiento almacenado para el parámetro de unidad de DATE_SUB

Me gustaría saber si es posible pasar un parámetro a un procedimiento almacenado mysql y usar este parámetro comounidad parámetro de la función DATE_SUB. Parece que elunidad parámetro es una palabra reservada, así que no sé si hay un tipo de unidad.

Ejemplo de lo que intento hacer:

DELIMITER $

DROP PROCEDURE IF EXISTS `test` $
CREATE DEFINER=`root`@`%` PROCEDURE `test`(param1 unit)
BEGIN

select DATE_SUB(now(), INTERVAL 1 param1);

END $

DELIMITER ;

ACTUALIZACIÓN 1 Intenté con una declaración de preparación, puedo crear el proceso almacenado.

DELIMITER $

DROP PROCEDURE IF EXISTS `test` $
CREATE DEFINER=`root`@`%` PROCEDURE `test`(param1 varchar(10))
BEGIN


PREPARE stmt FROM 'SELECT DATE_SUB(now(), INTERVAL 1 ?)';
EXECUTE stmt USING @param1;


END $

DELIMITER ;

Cuando lo ejecuté: CALL test ('WEEK'); Tiene un error en su sintaxis SQL; consulte el manual que corresponde a la versión de su servidor MySQL para obtener la sintaxis correcta para usar cerca de '?)' en la línea 1

Respuestas a la pregunta(1)

Su respuesta a la pregunta