如题 

解决方案 »

  1.   

    本周的第一天,假设周一是每周第一天。mysql> select CURDATE(),DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) DAY) ;
    +------------+-----------------------------------------------------+
    | CURDATE()  | DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) DAY) |
    +------------+-----------------------------------------------------+
    | 2009-05-19 | 2009-05-18                                          |
    +------------+-----------------------------------------------------+
    1 row in set (0.00 sec)
    
      

  2.   

    本月的第一天mysql> select CURDATE(),DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY) ;
    +------------+---------------------------------------------------+
    | CURDATE()  | DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY) |
    +------------+---------------------------------------------------+
    | 2009-05-19 | 2009-05-01                                        |
    +------------+---------------------------------------------------+
    1 row in set (0.00 sec)mysql>
      

  3.   

    本季度的第一天mysql> select CURDATE(),DATE_SUB(DATE_SUB(CURDATE(),INTERVAL (MONTH(CURDATE())-1)%3 MONTH) ,INTERVAL DAY(CURDATE())-1 DAY);
    +------------+----------------------------------------------------------------------------------------------------+
    | CURDATE()  | DATE_SUB(DATE_SUB(CURDATE(),INTERVAL (MONTH(CURDATE())-1)%3 MONTH) ,INTERVAL DAY(CURDATE())-1 DAY) |
    +------------+----------------------------------------------------------------------------------------------------+
    | 2009-05-19 | 2009-04-01                                  |
    +------------+----------------------------------------------------------------------------------------------------+
    1 row in set (0.00 sec)mysql>
      

  4.   

    简化一下 
    本季度的第一天 ,然后你可以把字符串再转换为日期。 方法很多,包括同一个函数的别名(同义词)也很多。比如CURDATE(),CURRENT_DATE(), CURRENT_DATE, NOW 等都可以返回当天mysql> select CURDATE(),ELT(QUARTER(CURDATE()),
        ->  year(CURDATE())*1000+0101,
        ->  year(CURDATE())*1000+0401,
        ->  year(CURDATE())*1000+0701,
        ->  year(CURDATE())*1000+1001) as firstDayofQ;
    +------------+-------------+
    | CURDATE()  | firstDayofQ |
    +------------+-------------+
    | 2009-05-19 | 2009401     |
    +------------+-------------+
    1 row in set (0.00 sec)mysql>
      

  5.   

    用mysql语句获取本季度的第一天 本月的第一天,
    date(
    concat(year(curdate()),'-',month(curdate()),'-','1'))
    本周的第一天
    curdate()-
    WEEKDAY(curdate())
      

  6.   

    用mysql语句获取本季度的第一天date(
    concat(year(curdate()),'-',
    if(quarter(curdate())=1,1,if(quarter(curdate())=2,4,if(quarter(curdate())=3,7,10))
      

  7.   

    用mysql语句获取本季度的第一天:
    优化:
    date(
    concat(year(curdate()),'-',elt(quarter(curdate()),1,4,7,10),'-',1))
      

  8.   

    本周的第一天
    date_add(date('2009-5-29'),INTERVAL -weekday('2009-5-29') day)