mysql 获取当前日期,上月日期、下月日期

SELECT DATE_FORMAT( DATE_SUB(CURDATE(), INTERVAL -1 MONTH), '%Y-%m-01 00:00:00') AS '下月初';
SELECT DATE_FORMAT( LAST_DAY(DATE_SUB(CURDATE(), INTERVAL -1 MONTH)), '%Y-%m-%d 23:59:59') AS '下月末';

SELECT DATE_FORMAT( CURDATE(), '%Y-%m-01 00:00:00') AS '本月初';
SELECT DATE_FORMAT( LAST_DAY(CURDATE()), '%Y-%m-%d 23:59:59') AS '本月末';

SELECT DATE_FORMAT( DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m-01 00:00:00') AS '上月初';
SELECT DATE_FORMAT( LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)), '%Y-%m-%d 23:59:59') AS '上月末';

DATE_SUB(d,INTERVAL expr type)函数在指定修改的时间段时,也可以指定负值,负值代表相减,减去一个负值,得到的是对日期的相加,即返回以后的日期和时间。

DATE_SUB(d,INTERVAL expr type)函数中的type必须在上表中。而且,type必须是上表中的某一项,不能是其中几项的组合。因此,使用该函数时,一定要注意type的选择。

MySQL interval()函数

INTERVAL(N,N1,N2,N3,..........)

INTERVAL()函数进行比较列表(N,N1,N2,N3等等)中的N值。该函数如果N

mysql>SELECT INTERVAL(6,1,2,3,4,5,6,7,8,9,10);
+---------------------------------------------------------+
| INTERVAL(6,1,2,3,4,5,6,7,8,9,10) |
+---------------------------------------------------------+
| 6 |
+---------------------------------------------------------+
1 row in set (0.00 sec)

请记住,6是从零开始的索引,列表第一个值的值大于N. 在我们的例子中,7是错误的值,它是位于第六索引插槽。

你可能感兴趣的:(mysql 获取当前日期,上月日期、下月日期)