【问题标题】:Why Does a mysql Query Using DAYOFYEAR(DATE) Return Different Results to DAY(DATE)?为什么使用 DAYOFYEAR(DATE) 的 mysql 查询返回不同的结果到 DAY(DATE)?
【发布时间】:2018-07-16 19:44:57
【问题描述】:

问题如上。

重申我已经运行了两个相同的查询,除了在 Select 和 Group By 子句中使用的 DAY(DATE) 和 DAYOFYEAR(DATE) 部分。

我预计结果是相同的,但它们差别很大(DAYOFYEAR 返回 344563 个结果,DAY 返回 253637 个结果)。我能想到的唯一解释是 1 月 1 日与 2 月 1 日等归为一组,因为它们共享相同的 DAY 值。然而,结果集似乎并没有表明这一点。

任何确认/解释将不胜感激。

【问题讨论】:

  • 我不明白为什么按 [1, 31] 范围内的值分组应该呈现与 [1, 366] 中的值相同的结果。我错过了什么?
  • 所以这只是因为 2 月 1 日与 1 月 1 日等分组?
  • 如果真的是这样,请寻求确认
  • 这是因为他们是完全不同的群体。一个月最多可以有 31 天,因此您最多可以获得 31 个组。一年最多可以有 366 天,因此您最多可以获得 366 个组。如果您按工作日分组,您将获得最多 7 个组。如果你按颜色分组,你会得到完全不同的结果。

标签: mysql


【解决方案1】:

DAYOFMONTH() 和 DAY() 具有可比性。今天他们都将返回 16,因为今天是本月的 16 日,并且每个月都有 16 天。DAYOFYEAR() 是自年初以来的天数的计数。这完全是另一回事。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-19
    • 2022-01-25
    • 1970-01-01
    • 2018-01-06
    • 2014-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多