MYSQL ORDER BY strtotime(column)ASC可能吗?

时间:2018-12-30 13:49:41

标签: mysql sql sql-order-by strtotime

我有一列带有varchars之类的2.7.2019 10:15-12:30。现在,我想对这些日期的输出进行排序,但是我需要将其格式化为时间戳。我该如何在ORDER BY 'column'中进行操作。 这是我目前的尝试:

mysqli_query($conn, "SELECT * FROM ".$kTable." WHERE class='".$class."' ORDER BY '.strtotime(.''datehours''.).' DESC"); 我知道varchar包含一定范围的时间戳,但出于排序目的,它可以胜任。像12.12.2018 10:00-12:15这样的范围将是12.12.2018 22:15,并且会有更高或更低的值,例如10:10-12:15(22:25)

1 个答案:

答案 0 :(得分:0)

您可以使用str_to_date()将范围的第一部分转换为日期时间:

select . . .  -- whatever you want to select here
from t
order by str_to_date(substring_index(datehour, '-', 1), '%d.%m.%Y %H:%i')

或者您的列的格式正确。