【问题标题】:Mysql Get week of lifetimeMysql获取生命周
【发布时间】:2014-01-10 10:06:30
【问题描述】:

WEEK()WEEKOFYEAR() 返回一年中的一周。但是如果我想GROUP BY 一周,时间范围跨越多年,那么GROUP BY WEEK() 将不起作用。由于 WEEK 将返回相同的值,比如说 2010 年 1 月 3 日和 2011 年 1 月 3 日。如何解决这个问题?

【问题讨论】:

    标签: mysql date datetime week-number


    【解决方案1】:

    按周和年分组:

    GROUP BY YEAR(column), WEEK(column)
    

    【讨论】:

    • 应该反过来
    • 谢谢克里斯,改了
    • @Cris GROUP BY 条件的顺序对操作没有影响,唯一的区别是美观
    • @AeroX,谢谢,我以为我学到了一些新东西。显然不是。
    • 这不是将一周分成两部分,从 12 月开始到 1 月结束吗?
    【解决方案2】:

    您还需要在GROUP BY 子句中选择YEAR

    SELECT .... GROUP BY YEAR( date_field ), WEEKOFYEAR( date_field ), WEEK( date_field );
    

    您可以省略任何WEEK... 条件。

    【讨论】:

      【解决方案3】:

      自己找到了解决方案。 YEARWEEK(); 函数。按年和周分组并不能解决问题。在这种情况下,从 12 月开始到 1 月结束的一周将按年份分成两组。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-04
        • 1970-01-01
        相关资源
        最近更新 更多