No estás haciendo ningula lectura de tablas en esa stored function.
En SQL las tablas no se invocan como objetos de clase para obtener algo. Una tabla sólo devuelve algo cuando realizas un SELECT.
Ten en cuenta que la SF se ejecuta en un proceso independiente del proceso donde se ejecuta la query que la invoca.
Yo te propondría algo más parecido a esto:
Código SQL:
Ver originalDROP FUNCTION IF EXISTS get_date_formated;
DELIMITER $$
CREATE FUNCTION get_date_formated(post_date DATE)
RETURNS CHAR(40)
BEGIN
DECLARE mes CHAR(40);
DECLARE dia CHAR(40);
CASE MONTH(post_date)
WHEN 1 THEN
SET mes='Enero';
WHEN 2 THEN
SET mes = 'Febrero';
WHEN 3 THEN
SET mes = 'Marzo';
WHEN 4 THEN
SET mes = 'Abril';
WHEN 5 THEN
SET mes = 'Mayo';
WHEN 6 THEN
SET mes = 'Junio';
WHEN 7 THEN
SET mes = 'Julio';
WHEN 8 THEN
SET mes = 'Agosto';
WHEN 9 THEN
SET mes = 'Septiembre';
WHEN 10 THEN
SET mes = 'Octubre';
WHEN 11 THEN
SET mes = 'Noviembre';
WHEN 12 THEN
SET mes = 'Diciembre';
END CASE;
CASE DAYOFWEEK(post_date)
WHEN 7 THEN
SET dia = 'Sabado';
WHEN 1 THEN
SET dia = 'Domingo';
WHEN 2 THEN
SET dia = 'Lunes';
WHEN 3 THEN
SET dia = 'Martes';
WHEN 4 THEN
SET dia = 'Miercoles';
WHEN 5 THEN
SET dia = 'Jueves';
WHEN 6 THEN
SET dia = 'Viernes';
END CASE;
RETURN CONCAT (dia, ' ' , DAY(post_date), ' de ' mes, ' de ' YEAR(post_date));
END;
$$
DELIMITER ;
Nota: post_date es una variable local. No es la columna de la tabla.