MySQL - MONTH() Function
The MySQL MONTH() function is used to retrieve and return the MONTH of the given date or, date time expression. This function returns a numerical value ranging from 1 to 12 representing the month (January to December).
This function accepts the date value in the 'YYYY-MM-DD' format as an argument and retrieves the 'MM' from it. The numerical equivalent of the month of an year is displayed as a result-set.
A NULL value is returned if the date argument passed to the function is NULL.
Syntax
Following is the syntax of MySQL MONTH() function −
MONTH(date);
Parameters
This method accepts the date value from which you need to retrieve the month as a parameter.
Return value
This function returns the MONTH of the given date or, date time expression.
Example
In the following query, we are using the MySQL MONTH() function to fetch the month of the given date value −
SELECT MONTH('2019-05-25') As Result;
Output
This will produce the following result −
| Result |
|---|
| 5 |
Example
If the month value in the given date is 0 this function returns 0 −
SELECT MONTH('1789-00-07') As Result;
Output
Following is the output −
| Result |
|---|
| 0 |
Example
If we pass an empty string or a non-string value as an argument this function returns NULL.
SELECT MONTH('') As Result;
Following is the output −
| Result |
|---|
| NULL |
Here, we are passing a non-string value as an argument −
SELECT MONTH(1990-11-11) As Result;
Following is the output −
| Result |
|---|
| NULL |
Example
We can also pass the date-time expression as an argument to this function −
SELECT MONTH('2015-09-05 09:40:45.2300') As Result;
Output
Following is the output −
| Result |
|---|
| 9 |
Example
In the following example, we are retrieving the month (number) from the current date −
SELECT MONTH(CURDATE()) As Result;
Output
Following is the output −
| Result |
|---|
| 11 |
Example
In this example, we have created a table named ORDERS using the following CREATE TABLE query −
CREATE TABLE ORDERS ( OID INT NOT NULL, DATE VARCHAR (20) NOT NULL, CUSTOMER_ID INT NOT NULL, AMOUNT DECIMAL (18, 2) );
Now, insert the following records into the ORDERS table using the INSERT statement −
INSERT INTO ORDERS VALUES (102, '2009-10-08 00:00:00', 3, 3000.00), (100, '2009-10-08 00:00:00', 3, 1500.00), (101, '2009-11-20 00:00:00', 2, 1560.00), (103, '2008-05-20 00:00:00', 4, 2060.00);
Execute the below query to fetch all the inserted records in the above-created table −
Select * From ORDERS;
Following is the ORDERS table −
| OID | DATE | CUSTOMER_ID | AMOUNT |
|---|---|---|---|
| 102 | 2009-10-08 00:00:00 | 3 | 3000.00 |
| 100 | 2009-10-08 00:00:00 | 3 | 1500.00 |
| 101 | 2009-11-20 00:00:00 | 2 | 1560.00 |
| 103 | 2008-05-20 00:00:00 | 4 | 2060.00 |
Now, we use the MySQL MONTH() function to extract the month component from all the datetime values in the DATE column of ORDERS table −
SELECT OID, DATE, MONTH(DATE) As Months FROM ORDERS;
Output
The output is displayed as follows −
| OID | DATE | Hour |
|---|---|---|
| 102 | 2009-10-08 00:00:00 | 10 |
| 100 | 2009-10-08 00:00:00 | 10 |
| 101 | 2009-11-20 00:00:00 | 11 |
| 103 | 2008-05-20 00:00:00 | 5 |