MySQL month()函数

在本教程中,您将学习如何使用MySQL MONTH函数来获取给定日期的月份。

MySQL MONTH函数介绍

MONTH函数返回一个整数,表示指定日期值的月份。 以下说明了MONTH函数的语法:

MONTH(date);

MONTH函数接受一个DATEDATETIME值的参数。 它返回112之间的整数,范围从112

如果通过零日期,例如0000-00-00,则MONTH函数返回0,如果日期为NULL,则MONTH函数返回NULL

MySQL MONTH函数示例

以下示例显示如何获取2018-01-01的月份:

mysql> SELECT MONTH('2018-01-01');
+---------------------+
| MONTH('2018-01-01') |
+---------------------+
|                   1 |
+---------------------+
1 row in set

要获取当前月份,请使用以下语句:

mysql> SELECT MONTH(NOW()) CURRENT_MONTH;
+---------------+
| CURRENT_MONTH |
+---------------+
|             8 |
+---------------+
1 row in set

在这个例子中,我们将NOW函数的结果(当前日期和时间)传递给MONTH函数以获取当前月份,写这篇文章的时候,日期是2017-08-12

如前所述,MONTH函数为零日期返回0,如下例所示:

mysql> SELECT MONTH('0000-00-00');
+---------------------+
| MONTH('0000-00-00') |
+---------------------+
| NULL                |
+---------------------+
1 row in set

如果输入日期值为NULL,则MONTH函数返回NULL

mysql> SELECT MONTH(NULL);
+-------------+
| MONTH(NULL) |
+-------------+
| NULL        |
+-------------+
1 row in set

MySQL MONTH功能的实用性

请参阅示例数据库(zaixiandb)中的以下orders表和orderdetails表:

以下声明在2014年每月获得订单总额:

SELECT 
    MONTH(orderDate) month,
    ROUND(SUM(quantityOrdered * priceEach)) subtotal
FROM
    orders
        INNER JOIN
    orderdetails USING (orderNumber)
WHERE
    YEAR(orderDate) = 2014
GROUP BY month;

执行上面查询语句,得到以下结果 -

+-------+----------+
| month | subtotal |
+-------+----------+
|     1 | 292385   |
|     2 | 289503   |
|     3 | 217691   |
|     4 | 187576   |
|     5 | 248325   |
|     6 | 343371   |
|     7 | 325563   |
|     8 | 419327   |
|     9 | 283800   |
|    10 | 500234   |
|    11 | 979292   |
|    12 | 428838   |
+-------+----------+
12 rows in set

下面我们将语句分解成更小的部分,使它更容易理解:

  1. INNER JOIN子句使用orderNumber列连接了两个表:ordersorderdetails表。
  2. MONTH函数应用于orderDate列以获取月份数据
  3. SUM函数计算销售订单中每个订单项的小计。
  4. WHERE子句仅过滤了2014年的订单。
  5. GROUP BY子句按月分组。

在本教程中,您学习了如何使用MySQL MONTH函数来获取指定日期的一个月份值。


上一篇: MySQL函数 下一篇: MySQL+Node.js连接和操作