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...