代码之家  ›  专栏  ›  技术社区  ›  Toby

在MySQL中选择当前星期的最佳方法是什么

  •  5
  • Toby  · 技术社区  · 15 年前

    现在我有了这样的东西。。。

    SELECT SUM(a.PaidSingle) AS PaidSingle,
           DATE_FORMAT(a.TimeIn, '%a') AS weekDay
    FROM Attendance AS a JOIN MemberDetail AS m ON m.id = a.MemberID
    WHERE m.CardNumber = '$cardNo'
    AND   WEEK(a.TimeIn, 0) = WEEK(NOW(),0)
    GROUP BY weekDay
    ORDER BY a.TimeIn
    

    我想简单地说,然后和年=今年,但当然,然后在一个星期,从12月开始,到1月结束,我将只得到半个星期。

    在MySQL中实现这一点的最佳方法是什么?或者我应该使用基于PHP的解决方案吗?

    2 回复  |  直到 14 年前
        1
  •  3
  •   martin clayton egrunin    15 年前

    您使用的是mode=0的WEEK,它返回0-53之间的周数-这会导致新年前后出现问题,其中一周的一部分 可能是'yyy53',如果你愿意的话,剩下的可能是'YYYZ00'。

    如果你能使用与 DATE_FORMAT %V和%X选项:

    DATE_FORMAT( NOW( ), "%X%V" )
    

    这些仅使用1-53之间的周数,因此可以为yyyyz年的日期获取一个星期YYYY53事件。

    恐怕不符合你的要求!

        2
  •  0
  •   KARASZI István    15 年前

    为什么不选择工作日:

    SELET DATE_FORMAT(NOW(), '%u')
    

    here