【发布时间】:2018-12-16 22:14:56
【问题描述】:
我正在使用 varchar 字段来存储时间符号(格式:00:00)。 我如何对该字段的结果进行排序,以便例如 08:00 在 10:00 之前出现? 感谢您的支持。
【问题讨论】:
-
这会有帮助 --> stackoverflow.com/questions/4686849/…
标签: mysql sql sorting date datetime
我正在使用 varchar 字段来存储时间符号(格式:00:00)。 我如何对该字段的结果进行排序,以便例如 08:00 在 10:00 之前出现? 感谢您的支持。
【问题讨论】:
标签: mysql sql sorting date datetime
理想情况下,您应该将数据存储为TIME,但您始终可以按需将CAST 存储为date time literals:
ORDER BY CAST(thetime AS TIME)
【讨论】:
在ORDER BY 子句中使用TIME_FORMAT 函数
假设您的列名为 thetime 并且始终表示为 24 小时格式 hours:minutes (23:43)
ORDER BY TIME_FORMAT(thetime, '%H:%i');
【讨论】:
你没有问题。 '08:00' 小于 '10:00'。
你没有问题,因为你已经对字符串进行了零填充。这适用于高达'99:59'。如果您需要三位数的小时数,则需要为该小时存储一个加法 0:'008:00'' and'010:00'`。
当然,您也可以使用TIME 数据类型。这通常是有道理的,但它的范围有限,而且它会在一段时间内存储亚分钟部分(因此在某些情况下,它可能不完全适合您的需求)。
【讨论】: