3

我正在尝试按时间对一些结果进行排序。我已经收集到 str_to_date 是要走的路,但我似乎用错了,我不能确定,但​​我认为它正在转换为 NULL 然后没有以有意义的方式排序:

mysql> SELECT member_id, result_result, str_to_date('result_result','%i:%s.%f') FROM results WHERE workout_id = '2' ORDER BY str_to_date('result_result','%i:%s.%f') LIMIT 5;
+-----------+---------------+-----------------------------------------+
| member_id | result_result | str_to_date('result_result','%i:%s.%f') |
+-----------+---------------+-----------------------------------------+
|         0 | 1:35.0        | NULL                                    |
|         1 | 1:35.0        | NULL                                    |
|         3 | 1:40          | NULL                                    |
|         4 | 1:37.8        | NULL                                    |
|         7 | 1:27.3        | NULL                                    |
+-----------+---------------+-----------------------------------------+
5 rows in set, 5 warnings (0.00 sec)

但是如果我手动进行,这两种结果类型似乎可以很好地转换:

mysql> select str_to_date('1:40','%i:%s.%f');
+--------------------------------+
| str_to_date('1:40','%i:%s.%f') |
+--------------------------------+
| 00:01:40                       |
+--------------------------------+
1 row in set (0.00 sec)

mysql> select str_to_date('1:35.0','%i:%s.%f');
+----------------------------------+
| str_to_date('1:35.0','%i:%s.%f') |
+----------------------------------+
| 00:01:35                         |
+----------------------------------+
1 row in set (0.00 sec)

任何想法发生了什么/如何解决它?谢谢!

4

1 回答 1

2

您不需要函数内的引号。尝试

str_to_date( result_result, '%i:%s.%f' )
于 2013-06-13T10:25:18.177 回答