ORDER BY datetime 根据日期和时间
ORDER BY datetime depending on the day AND time
我有一个日期时间类型的数据库字段。
这个字段的名称是"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,但我不明白如何使用它。
您可以使用以下代码创建一个特定订单,将时间“00:00:00”置于一天的最后:
...
ORDER BY date(a.rappelDate),
case when time(a.rappelDate) = 0 then 1 else 0 end,
time(a.rappelDate)
我有一个日期时间类型的数据库字段。
这个字段的名称是"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,但我不明白如何使用它。
您可以使用以下代码创建一个特定订单,将时间“00:00:00”置于一天的最后:
...
ORDER BY date(a.rappelDate),
case when time(a.rappelDate) = 0 then 1 else 0 end,
time(a.rappelDate)