Format date francais, sortir les mois en toutes lettres avec mysql

La bonne solution

Tout simplement, en deux rêquetes et avec la fonction DATE_FORMAT()

SET lc_time_names = 'fr_FR';
SELECT DATE_FORMAT(`date`, '%d %M %Y') FROM `t_dates`;

Les options: http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_date-format

La feinte ou comment tout faire soi-même

Faire une table des mois français

CREATE TABLE IF NOT EXISTS `rw_mois` (
  `mois_id` int(11) NOT NULL,
  `mois_libelle` varchar(255) NOT NULL,
  PRIMARY KEY (`mois_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO `rw_mois` (`mois_id`, `mois_libelle`) VALUES
(1, 'Janvier'),
(2, 'Février'),
(3, 'Mars'),
(4, 'Avril'),
(5, 'Mai'),
(6, 'Juin'),
(7, 'Juillet'),
(8, 'Août'),
(9, 'Septembre'),
(10, 'Octobre'),
(11, 'Novembre'),
(12, 'Décembre');

Requête

SELECT DISTINCT `date`, CONCAT(`mois_libelle`, ' ',YEAR(`date`))
FROM `t_dates`
LEFT JOIN `t_mois` ON MONTH(`t_dates`.`date`) = `t_mois`.`mois_id`;

Résultat:

date | CONCAT(`mois_libelle`, ' ',YEAR(`date`))
2011-12-01 | Décembre 2011
2011-11-02 | Novembre 2011
2011-10-01 | Octobre 2011
2011-09-01 | Septembre 2011
2011-08-01 | Août 2011
2011-07-01 | Juillet 2011
2011-06-01 | Juin 2011
2011-05-02 | Mai 2011
2011-04-01 | Avril 2011
2011-03-01 | Mars 2011
2011-02-28 | Février 2011
2011-01-03 | Janvier 2011