按日期和时间排序的SQL order by语句

4
拥有带有“日期”(YYYY-MM-dd)和“时间”(hh:mm上午/下午)字段的表格,但有时时间可能为空。这种结构是否可以按日期和时间对项目进行排序?

3
为什么您要使用文本字段进行此操作? - Jon Skeet
你可以使用该字段名称进行排序,并使用 case 条件来处理 null 或空白情况。这个链接可能会有所帮助 - Mowgli
你为什么要使用文本字段呢?长话短说,我真的不想重新生成它。 - ABTOMAT
3个回答

4

是的,您可以只用逗号分隔列名来实现这一点:

ORDER BY date, time

你需要适当处理“空白”时间(即它们应该放在结果集中的非空格之前还是之后):
ORDER BY date, time DESC

更新 适当处理上午和下午

为了实现这个目标,您可以使用SUBSTRING_INDEX函数

ORDER BY date, SUBSTRING_INDEX(time, " ", -1), SUBSTRING_INDEX(time, " ", 1)

你确定它能正确排序 '上午11:00' 和 '晚上10:00' 吗? - ABTOMAT

1

您可以使用

SELECT * FROM customer_tbl ORDER BY date DESC, time DESC

这应该会帮助你。

0

是的,您可以使用ORDER BY Date, Time,这将按字段中可用数据排序。空白值将在结果的末尾一起排序。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接