MySQL MONTH函数

时间:2019-11-20 08:52:23  来源:igfitidea点击:

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

MySQL MONTH函数简介

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

MONTH(date);

MONTH函数接受一个参数,该参数是DATE或DATETIME值。
返回一月到十二月的整数,范围是1到12。

如果您输入的日期为零(例如,registrator),则MONTH函数将返回0。
如果日期为NULL,则MONTH函数将返回NULL。

MySQL MONTH函数示例

以下示例显示如何获取2010年1月1日:

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

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

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

在此示例中,我们将NOW函数的结果(即当前日期和时间)传递给MONTH函数以获取当前月份。

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

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

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

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

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;

以下是查询的输出:

让我们将语句分成更小的部分,以使其更易于理解:

  • INNER JOIN子句使用orderNumber列将两个表order和orderdetails连接起来。

  • MONTH函数应用于orderDate列以获取月份数据

  • SUM函数计算销售订单中每个订单项的小计

  • WHERE子句仅过滤订单日期为2004年的订单。

  • GROUP BY子句按月份对小计进行分组。

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