Simplemente no creo que te funcione porque el parámetro
fechas debería ser un TEXT, y los SP en MySQL no los admiten como entrada. Esto es por la presencia de comas dentro del parámetro. Ese tipo de símbolos, para usarlos como los pones, requieren BLOB o TEXT. Para el caso es lo mismo.
Si aún así quieres probar, las forma sería mas o menos:
DELIMITER $$
DELIMITER ;
Lo que pareces estar tratando de hacer es ingresar un conjunto de fechas en un parámetro, separadas por comas, y luego separarlas para ingresarlas una a una. Si esa es la idea, antes de ellos te sugeriría que crearas en el script de PHP un INSERT múltiple, con control de IGNORE, o bien de ON DUPLICATE KEY.
Un INSERT múltiple es una sentencia INSERT escrita de esta forma:
Código MySQL:
Ver original (valores),
(valores),
(valores),
(valores),
(valores);
En tu caso habría que probar INSERT IGNORE, para que no genere errores de clave duplicada:
Código MySQL:
Ver original (valores),
(valores),
(valores),
(valores),
(valores);
No lo he probado nunca con un ON DUPLICATE KEY siendo un ISERT múltiple. Habría que intentarlo.