溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

mysql如何獲取當(dāng)前日期前后時(shí)間

發(fā)布時(shí)間:2020-05-22 16:03:01 來源:網(wǎng)絡(luò) 閱讀:293 作者:三月 欄目:MySQL數(shù)據(jù)庫

文主要給大家介紹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è)資訊欄目的。

向AI問一下細(xì)節(jié)

免責(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)容。

AI