比如给你一个日期,要你得到该日期在该月中是第几周?请问如何用mysql 中的一些内置函数或者通过一些算法来实现?
比如: 给定日期2007-10-10,要求得到一个整形2,表示2007-10-10在10月份中是第二周.

解决方案 »

  1.   

    select week('2007-10-10') - week(last_day(date_sub('2007-10-10',interval 1 month)))+1
      

  2.   

    select weekofyear('2007-10-10') - weekofyear(last_day(date_sub('2007-10-10',interval 1 month)))
      

  3.   

    select weekofyear( '2007-10-10 ') - weekofyear(last_day(date_sub( '2007-10-10 ',interval 1 month)))
    =================================================================================
    有错误.当时间为2007-09-23时不对了.
    个人研究得到正确的是:
    select ((week('2007-10-22')-week(adddate(last_day(adddate('2007-10-22',interval -1 month)),1)))+1)