adddate(now(),-1),也可以达到效果

select date_sub(now(),interval 1 day);
查询一天: 

 select * from table where to_days(column_time) = to_days(now()); 

 select * from table where date(column_time) = curdate(); 

 查询一周: 

 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); 

 mysql的日期和时间函数   

 查询选择所有 date_col 值在最后 30 天内的记录。    

 mysql> SELECT something FROM tbl_name  

             WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30;    //真方便,以前都是自己写的,竟然不知道有这,失败. 

 DAYOFWEEK(date)    

 返回 date 的星期索引(1 = Sunday, 2 = Monday, ... 7 = Saturday)。索引值符合 ODBC 的标准。    

 mysql> SELECT DAYOFWEEK(’1998-02-03’);  

          -> 3  

 WEEKDAY(date)    

 返回 date 的星期索引(0 = Monday, 1 = Tuesday, ... 6 = Sunday):    

 mysql> SELECT WEEKDAY(’1998-02-03 22:23:00’);  

          -> 1  

 mysql> SELECT WEEKDAY(’1997-11-05’);  

          -> 2  

 DAYOFMONTH(date)    

 返回 date 是一月中的第几天,范围为 1 到 31:    

 mysql> SELECT DAYOFMONTH(’1998-02-03’);  

          -> 3  

 DAYOFYEAR(date)    

 返回 date 是一年中的第几天,范围为 1 到 366:    

 mysql> SELECT DAYOFYEAR(’1998-02-03’);  

          -> 34  

 MONTH(date)    

 返回 date 中的月份,范围为 1 到 12:    

 mysql> SELECT MONTH(’1998-02-03’);  

          -> 2  

 DAYNAME(date)    

 返回 date 的星期名:    

 mysql> SELECT DAYNAME("1998-02-05");  

          -> ’Thursday’  

 MONTHNAME(date)    

 返回 date 的月份名:    

 mysql> SELECT MONTHNAME("1998-02-05");  

          -> ’February’  

 QUARTER(date)    

 返回 date 在一年中的季度,范围为 1 到 4:    

 mysql> SELECT QUARTER(’98-04-01’);  

          -> 2  

 WEEK(date)    

 WEEK(date,first)    

 对于星期日是一周中的第一天的场合,如果函数只有一个参数调用,返回 date 为一年的第几周,返回值范围为 0 到 53 (是的,可能有第 53 周的开始)。两个参数形式的 WEEK()  

 允许你指定一周是否以星期日或星期一开始,以及返回值为 0-53 还是 1-52。 这里的一个表显示第二个参数是如何工作的: