在本教程中,您将学习如何使用MySQL MONTH函数来获取给定日期的月份。
MySQL MONTH函数介绍
MONTH函数返回一个整数,表示指定日期值的月份。 以下说明了MONTH函数的语法:
MONTH(date);
MONTH函数接受一个DATE或DATETIME值的参数。 它返回1到12之间的整数,范围从1到12。
如果通过零日期,例如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功能的实用性
请参阅示例数据库(yiibaidb)中的以下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
下面我们将语句分解成更小的部分,使它更容易理解:
INNER JOIN子句使用orderNumber列连接了两个表:orders和orderdetails表。
MONTH函数应用于orderDate列以获取月份数据
SUM函数计算销售订单中每个订单项的小计。
WHERE子句仅过滤了2014年的订单。
在本教程中,您学习了如何使用MySQL MONTH函数来获取指定日期的一个月份值。
¥ 我要打赏
纠错/补充
收藏
加QQ群啦,易百教程官方技术学习群
注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。