MYSQL按时间am/pm排序

Sid*_*how 4 mysql time sql-order-by

我在表中有一行,以am/pm格式保存时间,例如

timeField
---------
9.00am
10.00pm
7.00am 
etc...
Run Code Online (Sandbox Code Playgroud)

在mysql中有没有办法订购这些值?

Ome*_*esh 15

您可以通过在MySQL中使用STR_TO_DATE函数来执行此操作:

SELECT STR_TO_DATE('10.00pm','%h.%i%p');
Run Code Online (Sandbox Code Playgroud)

试试这个:

SELECT * 
FROM table_name 
ORDER BY STR_TO_DATE(timeField,'%h.%i%p');
Run Code Online (Sandbox Code Playgroud)

示例:SQLFiddle