mysql 對取當前日期周一和週日語句

2021-10-07 11:22:52 字數 1876 閱讀 4723

1、查詢當天的資料

select * from 表名 where to_days(時間字段)=to_days(now());

2、查詢當周的資料

select * from 表名 where yearweek(date_format(時間字段,'%y-%m-%d'))=yearweek(now());

3、查詢當月的資料

select * from 表名 where date_format(時間字段,'%y%m')=date_format(curdate(),'%y%m');

4、查詢昨天的資料

select * from 表名 where to_days(now())-to_days(時間字段)=1;

5、查詢最近7天的資料

select * from 表名 where date_sub(curdate(),interval 7 day)<=date(時間字段);

6、查詢當年的資料

select * from 表名 where year(時間字段) =year(now());

7、查詢上週的資料

select * from 表名 whereyearweek(date_format(時間字段,'%y-%m-%d'))=yearweek(now())-1;

8、查詢上月的資料

select *from 表名 where period_diff(date_format(now(),'%y%m'),date_format(時間字段,'%y%m'))=1;

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  

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

mysql 對取當前日期周一和週日語句的詳細解析

網上對於用mysql取當前日期周一和週日的方法非常多,但基本上都只有乙個方法,沒有什麼解釋,後果就是會用,但為什麼要這樣用,就不一定知道了。自己研究了下,寫點東西,避免遺忘 select subdate curdate date format curdate w 1 獲取當前日期在本週的周一 sel...

mysql 對取當前日期周一和週日語句的詳細解析

網上對於用mysql取當前日期周一和週日的方法非常多,但基本上都只有乙個方法,沒有什麼解釋,後果就是會用,但為什麼要這樣用,就不一定知道了。自己研究了下,寫點東西,避免遺忘 select subdate curdate date format curdate w 1 獲取當前日期在本週的周一 sel...

計算當前日期所在周的周一和週日

根據日期計算所在周的周一和週日 param time 指定的日期 private static void convertweekbydate date time system.out.println 要計算日期為 sdf.format cal.gettime 輸出要計算日期 cal.setfirst...