摘要:在本教程中,您将学习如何使用 MySQL MONTH
函数来获取给定日期的月份。
MySQL MONTH
函数简介
MONTH
函数返回一个整数,表示指定日期值的月份。下面说明了MONTH
函数的语法:
MONTH(date);
Code language: SQL (Structured Query Language) (sql)
MONTH
函数接受一个参数,该参数是DATE
或DATETIME
值。它返回一个整数,范围为 1 到 12,表示 1 月到 12 月。
如果您传递零date
,例如0000-00-00
,则MONTH
函数返回 0 。如果您的date
为NULL
,则MONTH
函数返回NULL
。
MySQL MONTH
函数示例
以下示例显示如何获取2010-01-01
月份:
mysql> SELECT MONTH('2010-01-01');
+---------------------+
| MONTH('2010-01-01') |
+---------------------+
| 1 |
+---------------------+
1 row in set (0.00 sec)
Code language: SQL (Structured Query Language) (sql)
要获取当前月份,请使用以下语句:
mysql> SELECT MONTH(NOW()) CURRENT_MONTH;
+---------------+
| CURRENT_MONTH |
+---------------+
| 7 |
+---------------+
1 row in set (0.00 sec)
Code language: SQL (Structured Query Language) (sql)
在此示例中,我们将NOW
函数的结果(即当前日期和时间)传递给MONTH
函数以获取当前月份。
如前所述, MONTH
函数对于零日期返回 0,如下例所示:
mysql> SELECT MONTH('0000-00-00');
+---------------------+
| MONTH('0000-00-00') |
+---------------------+
| 0 |
+---------------------+
1 row in set (0.00 sec)
Code language: SQL (Structured Query Language) (sql)
如果输入日期值为NULL
, MONTH
函数将返回NULL
:
mysql> SELECT MONTH(NULL);
+-------------+
| MONTH(NULL) |
+-------------+
| NULL |
+-------------+
1 row in set (0.00 sec)
Code language: SQL (Structured Query Language) (sql)
MySQL MONTH函数的实际用法
请参阅示例数据库中的以下orders
和orderdetails
表:
以下语句获取 2004 年按月的订单量:
SELECT
MONTH(orderDate) month,
ROUND(SUM(quantityOrdered * priceEach)) subtotal
FROM
orders
INNER JOIN
orderdetails USING (orderNumber)
WHERE
YEAR(orderDate) = 2004
GROUP BY month;
Code language: SQL (Structured Query Language) (sql)
以下是查询的输出:
让我们将语句分成更小的部分,以便更容易理解:
INNER JOIN
子句使用orderNumber
列连接两个表orders
和orderdetails
。-
MONTH
函数应用于orderDate
列以获取月份数据 SUM
函数计算销售订单中每个行项目的小计WHERE
子句仅过滤订单日期为 2004 年的订单。-
GROUP BY
子句按月对小计进行分组。
在本教程中,您学习了如何使用 MySQL MONTH
函数获取指定日期的月份。
本教程有帮助吗?