【问题标题】:SQL order by date not pulling after Feb 28th2 月 28 日之后按日期排序的 SQL 订单未拉动
【发布时间】:2014-03-03 17:08:49
【问题描述】:

我有一个自定义的 php/sql 应用程序,它按天跟踪查询并显示过去 31 天的每日总数。

出于某种原因,ORDER BY date DESC 将在 2 月 28 日之后不再提取任何内容。 - 是的,日期列采用正确的 MySQL 日期类型格式。所有插入的条目都有正确的日期,所以我知道这不是表中的数据。

这是我的查询:

SELECT date, date_format(date, '%W, %M %e') AS day, COUNT('day') AS daycount 
FROM inquiries 
GROUP BY day 
ORDER BY date DESC LIMIT 31

我似乎无法弄清楚为什么降序显示 2 月 28 日是最近的一天,而实际上它是 3 月 3 日。如果我进入 phpmyadmin 并按日期列 desc 排序,它的排序与预期的完全一样,顶部是 3 月 3 日。有人有想法吗?提前致谢。

【问题讨论】:

  • 去掉GROUP BY还能用吗?如果你只做SELECT * ..,它会起作用吗?
  • 这里为什么需要按天分组?
  • remove date from select and at group by 重复 select 声明的列,在这种情况下:date_format(date, '%W, %M %e'),你不需要别名课程
  • 如果我删除 GROUP BY,它将显示三月份的条目,但是我需要它在单行上显示每天的条目数。为什么GROUP BY 会在 2 月 28 日之后消除任何东西??

标签: php sql date sql-order-by


【解决方案1】:

只需将GROUP BY day 更改为GROUP BY date 即可解决问题...

不知道为什么它决定在 2 月 28 日之后中断。我猜date_format(date, '%W, %M %e') AS day 在闰年之后按别名排序会搞砸。

如果有人有任何想法,我很想知道为什么。谢谢!

【讨论】:

    猜你喜欢
    • 2017-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多