mysql 獲取當(dāng)前日期,上月日期、下月日期

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)函數(shù)在指定修改的時(shí)間段時(shí),也可以指定負(fù)值,負(fù)值代表相減,減去一個(gè)負(fù)值,得到的是對(duì)日期的相加,即返回以后的日期和時(shí)間。

DATE_SUB(d,INTERVAL expr type)函數(shù)中的type必須在上表中。而且,type必須是上表中的某一項(xiàng),不能是其中幾項(xiàng)的組合。因此,使用該函數(shù)時(shí),一定要注意type的選擇。

MySQL interval()函數(shù)

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

INTERVAL()函數(shù)進(jìn)行比較列表(N,N1,N2,N3等等)中的N值。該函數(shù)如果N<N1返回0,如果N<N2返回1,如果N<N3返回2 等等。如果N為NULL,它將返回-1。列表值必須是N1<N2<N3的形式才能正常工作。下面的代碼是顯示 INTERVAL()函數(shù)如何工作的一個(gè)簡單的例子:

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word;">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)
</pre>

請(qǐng)記住,6是從零開始的索引,列表第一個(gè)值的值大于N. 在我們的例子中,7是錯(cuò)誤的值,它是位于第六索引插槽。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。