【问题标题】:Why does ORDER BY DAYOFWEEK()'s return not begin with Sunday?为什么 ORDER BY DAYOFWEEK() 的返回不是从星期日开始?
【发布时间】:2011-02-26 11:11:47
【问题描述】:

我有一个名为“tweets”的(MySQL)表:

tweet_id   created_at
---------------------
1          1298027046
2          1298027100
5          1298477008

我希望 MySQL 返回一周中每天的推文数量;获取上述数据,它应该返回:

Sunday  1
Monday  2

我现在有以下查询来完成此操作:

SELECT COUNT(tweet_id) AS tweets, DAYNAME(FROM_UNIXTIME(`created_at`)) AS day 
FROM tweets 
GROUP BY day 
ORDER BY DAYOFWEEK(day)

然而,这会返回一个从星期三开始的列表:

Wednesday 2019
Tuesday   2072
Monday     932
Sunday    1433
Saturday  4321
Friday     643
Thursday  1542

这个列表是如何排序的?为什么不只是从周日到周六,我如何 * 我可以做到这一点?

【问题讨论】:

    标签: mysql sql sorting group-by sql-order-by


    【解决方案1】:

    DAYOFWEEK 需要一个日期 ('2011-02-26'),但您要给它一个日期名称 ('Saturday')。

    【讨论】:

    • 谢谢,确实如此....出于某种原因,我完全忽略了这一点,并假设我有类似 FROM_UNIXTIME(created_at) AS day"。
    【解决方案2】:

    尝试像这样更改 order 子句

    order by dayofweek(FROM_UNIXTIME(`created_at`)) 
    

    【讨论】:

      猜你喜欢
      • 2011-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多