MONTHNAME() Examples – MySQL

In MySQL, the MONTHNAME() function returns the month name from a date.

For example, if you provide a date of 2021-12-07, the MONTHNAME() function will return December.

Syntax

The syntax goes like this:

MONTHNAME(date)

Where date is the date value that you want the month name returned from.

Example

Here’s an example to demonstrate.

SELECT MONTHNAME('2021-12-07') AS 'Result';

Result:

+----------+
| Result   |
+----------+
| December |
+----------+

A Database Example

In this example, I extract the month name from a column when running a query against a database.

USE sakila;
SELECT
  payment_date AS 'Date/Time',
  MONTHNAME(payment_date) AS 'Month'
FROM payment
WHERE payment_id = 1;

Result:

+---------------------+-------+
| Date/Time           | Month |
+---------------------+-------+
| 2005-05-25 11:30:37 | May   |
+---------------------+-------+

Current Date/Time

Here’s an example of extracting the month name from the current date and time (which is returned using the NOW() function).

SELECT 
    NOW(),
    MONTHNAME(NOW());

Result:

+---------------------+------------------+
| NOW()               | MONTHNAME(NOW()) |
+---------------------+------------------+
| 2018-06-29 15:19:48 | June             |
+---------------------+------------------+

Another way to do this is to use the CURDATE() function, which returns only the date (but not the time).

SELECT 
    CURDATE(),
    MONTHNAME(CURDATE());    

Result:

+------------+----------------------+
| CURDATE()  | MONTHNAME(CURDATE()) |
+------------+----------------------+
| 2018-06-29 | June                 |
+------------+----------------------+

Locale

The language used for the month name is controlled by the lc_time_names system variable. Here’s an example of changing the value of that variable, and then running MONTHNAME() again.

SET lc_time_names = 'es_CL';
SELECT MONTHNAME('2021-12-07') AS 'Result';

Result:

+-----------+
| Result    |
+-----------+
| diciembre |
+-----------+

In this example, I changed the lc_time_names to es_CL which means Spanish – Chile.