一句sql 取得一年内最后一个月的第一天怎么写??

解决方案 »

  1.   

    估计你是要这个效果。mysql> select DATE_ADD(DATE_SUB(curdate(),INTERVAL day(curdate()) day),INTERVAL
    1 year);
    +---------------------------------------------------------------------------+
    | DATE_ADD(DATE_SUB(curdate(),INTERVAL day(curdate()) day),INTERVAL 1 year) |
    +---------------------------------------------------------------------------+
    | 2010-04-30                                                                |
    +---------------------------------------------------------------------------+
    1 row in set (0.00 sec)mysql>
      

  2.   

    估计是距今天一年时间内的最后一个月的第一天。select DATE_ADD(DATE_SUB(curdate(),INTERVAL day(curdate())-1 day),INTERVAL 1 year);
      

  3.   

    对,就是这种的,能否讲解一下DATE_ADD函数,手册里没看明白,还有interval是什么意思。
      

  4.   

    ADDDATE(date,INTERVAL expr type) ADDDATE(expr,days) 当被第二个参数的INTERVAL格式激活后, ADDDATE()就是DATE_ADD()的同义词。相关函数SUBDATE() 则是DATE_SUB()的同义词。对于INTERVAL参数上的信息 ,请参见关于DATE_ADD()的论述。 mysql> SELECT DATE_ADD('1998-01-02', INTERVAL 31 DAY);        -> '1998-02-02'mysql> SELECT ADDDATE('1998-01-02', INTERVAL 31 DAY);        -> '1998-02-02'若 days 参数只是整数值,则 MySQL 5.1将其作为天数值添加至 expr。 http://dev.mysql.com/doc/refman/5.1/zh/functions.html#date-and-time-functions
    12.5. 日期和时间函数
    当您的问题得到解答后请及时结贴.
    http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html