您好,登錄后才能下訂單哦!
本文主要給大家介紹mysql如何獲取當(dāng)前日期前后時(shí)間,文章內(nèi)容都是筆者用心摘選和編輯的,具有一定的針對(duì)性,對(duì)大家的參考意義還是比較大的,下面跟筆者一起了解下mysql如何獲取當(dāng)前日期前后時(shí)間吧。
select subdate(curdate(),date_format(curdate(),'%w') - 1)//獲取當(dāng)前日期在本周的周一
select subdate(curdate(),date_format(curdate(),'%w') - 7)//獲取當(dāng)前日期在本周的周日
這兩句語句是mysql用來取當(dāng)前日期的周一或周日的一個(gè)方法,那么這句如何運(yùn)作的呢?
%w是以數(shù)字的形式來表示周中的天數(shù)(0=Sunday,1=Monday,...,6=Saturday),0為周日,6為周六,跟我們一般的認(rèn)知,一周是從周一開始的并不一樣。
date_format是一個(gè)日期轉(zhuǎn)換函數(shù)
date_format(curdate(),'%w') 表示當(dāng)前日期到上周周日共有幾天的間隔,即當(dāng)前日期減去上周周日的日期=天數(shù)(例:curdate()為2011-01-11,那么上周周日為 2011-01-09,兩者相減為2)所以若單獨(dú)輸出這一句:selectdate_format(curdate(),'%w')結(jié)果就是2
在mysqlapi里對(duì)于subdate函數(shù)是這樣解釋的:
SELECTSUBDATE(NOW(),1)AS'Yesterday',
SUBDATE(NOW(),INTERVAL-1DAY)AS'Tomorrow';
正值為昨天,負(fù)值為明天,當(dāng)前時(shí)間的起點(diǎn),就是當(dāng)前時(shí)間的上周周日
subdate函數(shù)就是用當(dāng)前時(shí)間減去2天,得到上周周日的時(shí)間為2011-01-09
那么如果運(yùn)行selectsubdate(curdate(),date_format(curdate(),'%w')-2)這句,就表示用當(dāng)前時(shí)間-(2-2),即-0,得到的結(jié)果就是當(dāng)前日期本身了。
如果把%w換成%d呢
%d是用兩位數(shù)字來表示月中的天數(shù)(00,01,...,31)
直接輸出的結(jié)果就應(yīng)該是11,表示當(dāng)前日期在一個(gè)月內(nèi)是第幾天
selectdate_format('2011-01-11','%d')
放到開始的語句里就表示用當(dāng)前時(shí)間減去11,結(jié)果為2010-12-31
selectsubdate('2011-01-11',date_format('2011-01-11','%d'))
mysql 數(shù)據(jù)庫中根據(jù)當(dāng)前系統(tǒng)時(shí)間,取前后幾秒 幾分鐘 幾小時(shí) 幾天
取當(dāng)前時(shí)間:
select current_timestamp;
輸出:2016-06-16 16:12:52
select now();
輸出:2016-06-16 16:12:52
取當(dāng)前時(shí)間的前一分鐘:
select SUBDATE(now(),interval 60 second);
輸出:2016-06-16 16:11:52
取當(dāng)前時(shí)間的下一分鐘:
select ADDDATE(now(),interval 60 second);
輸出:2016-06-16 16:13:52
通過變化上面的單位。可以取前后 分鐘,小時(shí),天的時(shí)間
取前一分鐘的時(shí)間:
select SUBDATE(now(),interval 1 minute);
輸出:2016-06-16 16:16:38
取前一小時(shí)的時(shí)間:
select SUBDATE(now(),interval 1 hour);
輸出:2016-06-16 15:17:38
取前一天的時(shí)間:
select SUBDATE(now(),interval 1 day);
輸出:2016-06-15 16:17:38
###########################
取后一分鐘的時(shí)間:
select ADDDATE(now(),interval 1 minute);
輸出:2016-06-16 16:17:38
取后一小時(shí)的時(shí)間:
select ADDDATE(now(),interval 1 hour);
輸出:2016-06-16 17:17:38
取后一天的時(shí)間:
select ADDDATE(now(),interval 1 day);
輸出:2016-06-17 16:17:38
看完以上關(guān)于mysql如何獲取當(dāng)前日期前后時(shí)間,很多讀者朋友肯定多少有一定的了解,如需獲取更多的行業(yè)知識(shí)信息 ,可以持續(xù)關(guān)注我們的行業(yè)資訊欄目的。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。