参考文档

MySQL获取某月份的天数:https://www.xiaobo.li/?p=177

常用时间获取

获取本月第一天

# 2019-08-01
SELECT DATE_ADD(CURDATE(),INTERVAL -DAY(CURDATE())+1 DAY) AS first_day_of_the_month

获取本月最后一天

# 2019-08-31
SELECT LAST_DAY(CURDATE()) AS last_day_of_the_month

获取当月天数

# 第一种算法 31
SELECT TIMESTAMPDIFF(DAY,CURDATE(),(DATE_ADD(CURDATE(),INTERVAL 1 MONTH))) AS number_of_days_in_the_month
# 第二种算法 31
SELECT DATEDIFF(DATE_ADD(CURDATE()-DAY(CURDATE())+1,INTERVAL 1 MONTH ),DATE_ADD(CURDATE(),INTERVAL -DAY(CURDATE())+1 DAY)) AS number_of_days_in_the_month

 ADDDATE(添加日期)

https://www.w3schools.com/sql/func_mysql_adddate.asp

ADDDATE()函数将时间/日期间隔添加到日期,然后返回日期。

语法

ADDDATE(date, INTERVAL value addunit)


ADDDATE(date, days)

增加3天(默认)

SELECT ADDDATE("2017-06-15 09:34:21", 3);

添加15分钟

SELECT ADDDATE("2017-06-15 09:34:21", INTERVAL 15 MINUTE);

减少3个小时

SELECT ADDDATE("2017-06-15 09:34:21", INTERVAL -3 HOUR);

减少2个月

SELECT ADDDATE("2017-06-15", INTERVAL -2 MONTH);