我正在使用varchar字段来存储时间符号(格式:00:00)。 我如何在该字段上对结果进行排序,例如08:00在10:00之前? 感谢您的支持。
答案 0 :(得分:1)
理想情况下,您应该将数据存储为TIME
,但始终可以按需CAST
date time literals:
ORDER BY CAST(thetime AS TIME)
答案 1 :(得分:0)
在ORDER BY
子句中使用TIME_FORMAT函数
假设您的列名为thetime
,并且始终以24小时格式hours:minutes
(23:43)
ORDER BY TIME_FORMAT(thetime, '%H:%i');
答案 2 :(得分:0)
您没有问题。 '08:00'
小于'10:00'
。
您没有问题,因为您将字符串零填充了。此功能最多可使用'99:59'
。如果您需要三位数的小时数,则需要为该小时数另外存储0
:'008:00'' and
“ 010:00”`。
当然,您也可以使用TIME
数据类型。通常这是有道理的,但是它的范围受到限制,并且会存储不到一分钟的时间(因此在某些情况下,它可能无法完全满足您的需求)。