Formatear una fecha en MySQL al español

En este ejemplo mostraremos como formatear una fecha de un campo datetime, en este caso usaremos la funcion NOW() de MySQL para la demostración.
La idea es formatear una fecha para que se pueda usar en una vista, con el formato correcto para nuestro idioma, por ejemplo para el día de hoy el resultado debería ser (Martes 22 de Mayo). Primero establecemos el idioma para el resultado de nuestra consulta y posteriormente la formateamos.

SET lc_time_names = 'es_UY';
SELECT
CONCAT_WS(' ',
              CONCAT(UCASE(SUBSTRING(DAYNAME(a.MyDate), 1, 1)),LCASE(SUBSTRING(DAYNAME(a.MyDate), 2))),
              DATE_FORMAT(a.MyDate,'%d de '),
              CONCAT(UCASE(SUBSTRING(MONTHNAME(a.MyDate), 1, 1)),LCASE(SUBSTRING(MONTHNAME(a.MyDate), 2)))
            ) AS fecha_con_formato
FROM (SELECT NOW() AS MyDate) AS a;

Ver imagen de ejemplo: