ORDER BY datetime取决于日期和时间

时间:2016-05-20 09:51:24

标签: mysql sql datetime sql-order-by

我有一个datetime类型的数据库字段。

此字段的名称为“recallDate”

我想按以下方式订购结果:

  • 结果必须按时间顺序排列:从最新到最旧
  • 结果必须按日期分组:换句话说,具有相同日期的结果在一起,分组
  • 对于每一天,结果必须按时间顺序排列:最早到最晚
  • 没有小时(00:00:00)的结果必须在当天的结果结束

这是我的实际查询:

SELECT a.recallDate, a.id, a.id_company, com.name, a.recallType 
        FROM PDT_CRM.actions a 
        INNER JOIN PDT_CRM.traders as trad on trad.id=a.id_traders 
        WHERE DATE(a.recallDate) > DATE(NOW() + INTERVAL 30 DAY)
        ORDER BY TIME(a.recallDate) ,  a.recallType 

我很可能必须使用CASE,但我不明白如何使用它。

1 个答案:

答案 0 :(得分:1)

您可以使用以下代码创建一个特定订单,该订单将在当天结束时放置'00:00:00':

...
ORDER BY date(a.rappelDate), 
         case when time(a.rappelDate) = 0 then 1 else 0 end,
         time(a.rappelDate)