MYSQL ORDER BY strtotime(column) ASC 可能吗?
MYSQL ORDER BY strtotime(column) ASC possible?
我有一个包含 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");
我知道 varchars 包含一系列时间戳,但出于排序目的,它可以完成这项工作。像 12.12.2018 10:00-12:15 这样的范围将是 12.12.2018 22:15 并且会像 10:10-12:15 (22:25)[ 这样的范围具有更高或更低的值=13=]
您可以使用 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')
或者您专栏的任何正确格式。
我有一个包含 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");
我知道 varchars 包含一系列时间戳,但出于排序目的,它可以完成这项工作。像 12.12.2018 10:00-12:15 这样的范围将是 12.12.2018 22:15 并且会像 10:10-12:15 (22:25)[ 这样的范围具有更高或更低的值=13=]
您可以使用 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')
或者您专栏的任何正确格式。