月初函数MySQL_MySQL month()函数

在本教程中,您将学习如何使用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表:

月初函数MySQL_MySQL month()函数_第1张图片

以下声明在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 个群。

你可能感兴趣的:(月初函数MySQL)