MySQL LAST_DAY函数
时间:2019-11-20 08:52:23 来源:igfitidea点击:
简介:本教程向您介绍MySQL LAST_DAY()函数,并向您展示如何在各种上下文中应用LAST_DAY()函数。
MySQL LAST_DAY()函数简介
LAST_DAY()函数采用DATE或DATETIME值,并返回输入日期的月份的最后一天。
LAST_DAY(date);
date参数必须是有效的DATE或DATETIME值。
如果日期为零(0000-00-00),无效或NULL,则LAST_DAY()函数将返回NULL。
MySQL LAST_DAY()函数示例
让我们举一些使用LAST_DAY()函数的示例。
A)MySQL LAST_DAY()简单示例
下面的示例使用LAST_DAY()函数返回2016年2月3日的最后一天。
SELECT LAST_DAY('2016-02-03');
这是输出:
+------------------------+ | LAST_DAY('2016-02-03') | +------------------------+ | 2016-02-29 | +------------------------+ 1 row in set (0.00 sec)
B)使用MySQL LAST_DAY()函数获取当前月份的最后一天
要获取当前月份的最后一天,可以将LAST_DAY()函数与NOW()或CURDATE()函数结合使用,如下所示:
SELECT LAST_DAY(NOW());
输出为:
+-----------------+ | LAST_DAY(NOW()) | +-----------------+ | 2017-07-31 | +-----------------+ 1 row in set (0.00 sec)
SELECT LAST_DAY(CURDATE());
+---------------------+ | LAST_DAY(CURDATE()) | +---------------------+ | 2017-07-31 | +---------------------+ 1 row in set (0.00 sec)
C)使用MySQL LAST_DAY()函数获取下个月的最后一天
要获取下个月的最后一天,请向当前日期添加1个月,然后将结果传递给LAST_DAY()函数,如以下查询所示:
SELECT LAST_DAY(CURDATE() + INTERVAL 1 MONTH);
这是输出:
+----------------------------------------+ | LAST_DAY(CURDATE() + INTERVAL 1 MONTH) | +----------------------------------------+ | 2017-08-31 | +----------------------------------------+ 1 row in set (0.00 sec)
D)获取日期中的第一天
MySQL没有返回日期第一天的函数。
但是,可以通过以下步骤使用LAST_DAY()函数进行计算:
首先,获取日期中月份的最后一天。
其次,使用DATE_ADD()函数添加1天以获取下个月的第一天
第三,减去1个月即可得出日期中该月的第一天。
以下查询说明如何获取2017年7月14日的第一天。
SELECT DATE_ADD(DATE_ADD(LAST_DAY('2017-07-14'), INTERVAL 1 DAY), INTERVAL - 1 MONTH) AS first_day;
输出为:
+------------+ | first_day | +------------+ | 2017-07-01 | +------------+ 1 row in set (0.00 sec)
为了更加方便,您可以开发一个名为FIRST_DAY()的存储函数,如下所示:
DELIMITER $$ CREATE FUNCTION first_day(dt DATETIME) RETURNS date BEGIN RETURN DATE_ADD(DATE_ADD(LAST_DAY(dt), INTERVAL 1 DAY), INTERVAL - 1 MONTH); END
然后,您可以调用FIRST_DAY()函数,如以下查询所示:
SELECT FIRST_DAY('2017-02-15');
这是输出:
+-------------------------+ | FIRST_DAY('2017-02-15') | +-------------------------+ | 2017-02-01 | +-------------------------+ 1 row in set (0.00 sec)
在本教程中,您学习了如何使用MySQL LAST_DAY()函数获取指定日期的每月的最后一天。