spanish name monthname month dayname mysql

dayname - MySQL MONTHNAME() a partir de números



mysql format date month name (4)

Antes de leer la gran respuesta de Michael, había pensado algo como esto

select elt(3,''January'',''February'',''March'',....)

pero el suyo es mucho mejor. :)

¿Hay MONTHNAME() obtener MONTHNAME() solo del número del mes (1-12)? Por ejemplo, si tengo 6,7,8 ¿hay alguna forma nativa en MySQL para transformarlos en June,July,August ?


De esta forma puede obtener un nombre de semana o nombre de mes de idioma diferente

para localizar el día de la semana:

`SELECT ELT( WEEKDAY(''2004-04-10'')+1, ''Montag'',''Dienstag'',''Mittwoch'',''Donnerstag'',''Freitag'',''Samstag'',''Sonntag'');`

versión larga con mes:

`SELECT DATE_FORMAT( ''2004-04-10'', CONCAT( ELT( WEEKDAY(''2004-04-10'')+1, ''Montag'',''Dienstag'',''Mittwoch'',''Donnerstag'',''Freitag'',''Samstag'',''Sonntag''),'', %d. '', ELT( MONTH(''2004-04-10''), ''Januar'',''Februar'',''März'',''April'',''Mai'',''Juni'',''Juli'',''August'',''September'',''Oktober'',''November'',''Dezember''),'' %Y''));`

-> Samstag, 10. de abril de 2004

lo mismo para timestamp unix:

`SELECT DATE_FORMAT( FROM_UNIXTIME(1081548000), CONCAT( ELT( WEEKDAY(FROM_UNIXTIME(1081548000))+1, ''Mo'',''Di'',''Mi'',''Do'',''Fr'',''Sa'',''So''),'', %d. '', ELT( MONTH(FROM_UNIXTIME(1081548000)), ''Jan.'',''Feb.'',''März'',''April'',''Mai'',''Juni'',''Juli'',''Aug.'',''Sept.'',''Okt.'',''Nov.'',''Dez.''),'' %Y''));`

-> Sa, 10. Abril 2004


Puede usar STR_TO_DATE() para convertir el número a una fecha, y luego volver con MONTHNAME()

SELECT MONTHNAME(STR_TO_DATE(6, ''%m'')); +---------------------------------+ | MONTHNAME(STR_TO_DATE(6, ''%m'')) | +---------------------------------+ | June | +---------------------------------+

Advertencia: Esto podría ser lento si se hace en muchas filas.


Una forma algo fea sería SELECT MONTHNAME(CONCAT(''2011-'',8,''-01''));