mysql查詢星期一到星期日的資料

2021-07-24 00:01:22 字數 1266 閱讀 2941

網上對於用mysql取當前日期周一和週日的方法非常多,但基本上都只有乙個方法,沒有什麼解釋,後果就是會用,但為什麼要這樣用,就不一定知道了。

自己研究了下,寫點東西,避免遺忘

select subdate(curdate(),date_format(curdate(),'%w')-1)//獲取當前日期在本週的周一

select subdate(curdate(),date_format(curdate(),'%w')-7)//獲取當前日期在本週的週日

這兩句語句是mysql用來取當前日期的周一或週日的乙個方法,那麼這句如何運作的呢?

%w 是以數字的形式來表示週中的天數( 0 = sunday, 1=monday, . . ., 6=saturday),0為週日,6為週六,跟我們一般的認知,一周是從周一開始的並不一樣。

date_format是乙個日期轉換函式

date_format(curdate(),'%w')表示當前日期到上週週日共有幾天的間隔,即當前日期減去上週週日的日期=天數(例:curdate()為2011-01-11,那麼上週週日為2011-01-09,兩者相減為2)所以若單獨輸出這一句:select date_format(curdate(),'%w') 結果就是2

在mysql api裡對於subdate函式是這樣解釋的:

select subdate(now( ), 1) as 'yesterday',

subdate(now( ), interval -1 day) as 'tomorrow';

正值為昨天,負值為明天,當前時間的起點,就是當前時間的上週週日

subdate函式就是用當前時間減去2天,得到上週週日的時間為2011-01-09

那麼如果執行select subdate(curdate(),date_format(curdate(),'%w')-2)這句,就表示用當前時間-(2-2),即-0,得到的結果就是當前日期本身了。

如果把%w換成%d呢

%d 是用兩位數字來表示月中的天數( 00, 01, . . ., 31)

直接輸出的結果就應該是11,表示當前日期在乙個月內是第幾天

select date_format('2011-01-11','%d')

放到開始的語句裡就表示用當前時間減去11,結果為2010-12-31

獲取當前所在星期的星期一

1 使用jdk獲取當前所在星期的星期一 取本週7天的第一天 周一的日期 public static date getnowweekbegin else gregoriancalendar currentdate new gregoriancalendar currentdate.add gregor...

今天星期日(開始實習的第四天)

今天早上強烈要求自己八點起的,沒辦法,可能對很多人來說這已經很晚了,昨天也弄出了不少的事情,昨天我的銀行卡丟了,弄出了一大堆的事情,今天終於所有的問題都解決好了,錢去中關村郵局用乙個高中同學的卡取到了,現在一切的事情都在慢慢的變好,也許我會更有時間跟精力來奮鬥我的事業了,當然現在工作的事情還很難說,...

七天的星期一

滲透 網路安全 資訊保安 前端滲透 web站點 伺服器 iis html js 資料庫 php 後滲透 作業系統 資料庫 底層 內網滲透 網路架構 裝置 伺服器 域控 外網滲透 釣魚 社工 黑盒測試 模糊測試 白盒測試 功能測試 灰盒測試 滲透測試 模擬攻擊 測試目標系統存在哪些漏洞的過程,探測目標...