函数执行问题

CREATE DEFINER = `root`@`%` FUNCTION `p_to_char`(fdate DATE, format varchar(255)) RETURNS varchar(255)
BEGIN
set format = REPLACE(format, 'yyyy', '%Y');
set format = REPLACE(format, 'YYYY', '%Y');
set format = REPLACE(format, 'YY', '%y');
set format = REPLACE(format, 'MM', '%m');
set format = REPLACE(format, 'mm', '%m');
set format = REPLACE(format, 'dd', '%d');
set format = REPLACE(format, 'DD', '%d');
set format = REPLACE(format, 'HH24', '%h');
set format = REPLACE(format, 'hh24', '%h');
set format = REPLACE(format, 'mi', '%i');
set format = REPLACE(format, 'ss', '%s');
set format = REPLACE(format, 'SS', '%S');
RETURN date_format(fdate,format);
END
select P_TO_CHAR(now(),'yyyy-MM-dd HH24:mi:ss')  =>2024-04-01 03:25:46

select P_TO_CHAR(字段是datetime 类型,'yyyy-MM-dd HH24:mi:ss')  =>2024-04-01 12:00:00

改成:CREATE DEFINER = root@% FUNCTION p_to_char(fdate datetime , format varchar(255)) 正常