我的用例:String pubtime = this.getDateStr(days);
List<MblogInfo> list_mblog = commonBaseDao.find("from MblogInfo where to_days(pubtime)>= to_days('" + pubtime + "')", null);
select * from A where DATE(data) = '2012-07-09'; 这个可以准确的查询到7.9号这天的数据,而且效率很高。
本周内:select * from wap_content where week(created_at) = week(now)
查询一天:select * from table where to_days(column_time) = to_days(now());select * from table where date(column_time) = curdate();
查询7天:select * from table where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(column_time);
查询一个月:select * from table where DATE_SUB(CURDATE(), INTERVAL INTERVAL 1 MONTH) <= date(column_time);
今天
select * from 表名 where to_days(时间字段名) = to_days(now());
昨天
Select * FROM 表名 Where TO_DAYS( NOW( ) ) – TO_DAYS( 时间字段名) <= 1
7天前 如果是7天后就是DATE_ADD函数
Select * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间字段名)
近30天前
Select * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(时间字段名)
本月
Select * FROM 表名 Where DATE_FORMAT( 时间字段名, ‘%Y%m’ ) = DATE_FORMAT( CURDATE( ) , ‘%Y%m’ )
上一月
Select * FROM 表名 Where PERIOD_DIFF( date_format( now( ) , ‘%Y%m’ ) , date_format( 时间字段名, ‘%Y%m’ ) ) =1
//时间转成年月日时分秒
select date_format(now(),'%Y%m%d%H%i%S')
//时间转成年月日
select date_format(now(),'%Y%m%d')
//去年此时
select DATE_ADD(now(), Interval -1 year)
//上月此时
select DATE_ADD(now(), Interval -1 month)
//昨天此时
select DATE_ADD(now(), Interval -1 day)
原文:http://www.2cto.com/database/201211/170388.html
更多:http://www.codesky.net/article/201003/168332.html