MySQL MONTH Function

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

MySQL MONTH函数简介

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

MONTH(date);
Code language: SQL (Structured Query Language) (sql)

MONTH函数接受一个参数,该参数是DATEDATETIME值。它返回一个整数,范围为 1 到 12,表示 1 月到 12 月。

如果您传递零date ,例如0000-00-00 ,则MONTH函数返回 0 。如果您的dateNULL ,则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)

如果输入日期值为NULLMONTH函数将返回NULL

mysql> SELECT MONTH(NULL);
+-------------+
| MONTH(NULL) |
+-------------+
|        NULL |
+-------------+
1 row in set (0.00 sec)
Code language: SQL (Structured Query Language) (sql)

MySQL MONTH函数的实际用法

请参阅示例数据库中的以下ordersorderdetails表:

以下语句获取 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)

以下是查询的输出:

MySQL MONTH function example

让我们将语句分成更小的部分,以便更容易理解:

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

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

本教程有帮助吗?