Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL按STROTIME(列)排序是否可能?_Mysql_Sql_Sql Order By_Strtotime - Fatal编程技术网

MYSQL按STROTIME(列)排序是否可能?

MYSQL按STROTIME(列)排序是否可能?,mysql,sql,sql-order-by,strtotime,Mysql,Sql,Sql Order By,Strtotime,我有一个带有varchars的专栏,比如2019年7月2日10:15-12:30。现在我想对这些日期的输出进行排序,但我需要将它们格式化为时间戳。如何在“按列”排序的中执行此操作。 这是我目前的尝试: mysqli_查询($conn,“从“$kTable.”中选择*,其中class=“$class.”ORDER BY“.strotime”(“datehours”)。“DESC”) 我知道varchar包含一系列时间戳,但出于排序目的,它可以完成这项工作。像12.12.2018 10:00-12:

我有一个带有varchars的专栏,比如2019年7月2日10:15-12:30。现在我想对这些日期的输出进行排序,但我需要将它们格式化为时间戳。如何在“按列”排序的
中执行此操作
。 这是我目前的尝试:

mysqli_查询($conn,“从“$kTable.”中选择*,其中class=“$class.”ORDER BY“.strotime”(“datehours”)。“DESC”)

我知道varchar包含一系列时间戳,但出于排序目的,它可以完成这项工作。像12.12.2018 10:00-12:15这样的范围将是12.12.2018 22:15,并且会有一个更高或更低的值,就像10:10-12:15(22:25)这样的范围。

您可以使用
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')

或者您的列的正确格式。

您可以使用
str\u to\u date()
将范围的第一部分转换为日期时间:

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

或者无论您的列采用何种正确格式。

如果我正确读取了您的数据,该列实际上包含一系列时间戳。关于排序,您希望如何解释此范围?顺便说一句,在一条记录中存储一个时间范围是不好的表设计。如果我正确读取了数据,该列实际上包含一个时间戳范围。关于排序,您希望如何解释此范围?顺便说一下,在一条记录中存储一段时间是不好的表设计。您的查询缺少括号。我想给出一个大致的答案,但如果我们不知道所使用的逻辑是什么,那么订购一个范围实际上是没有意义的。无论如何,祝贺今年134K。按tr_至_日期排序(子字符串索引(datehours,“-”,1),“%d.%m.%Y%H:%i”ASC对我不起作用…@Chryfi…请解释原因。这是您问题中的示例数据,它似乎满足了您的要求。逻辑是表中包含事件,这些事件当然在时间戳范围内,我想将它们从最新到最快排序…@GordonLinoff Answer使我的列输出消失ear…编辑旧答案,但不要使用这些…您的查询缺少括号。我曾想过按照这些行给出答案,但除非我们确切知道所使用的逻辑,否则排序范围实际上没有意义。无论如何,祝贺今年134K。按tr_to_date排序(子字符串索引(datehours,“-”,1),“%d.%m.%Y%H:%i”ASC对我不起作用…@Chryfi…请解释原因。这是您问题中的示例数据,它似乎满足了您的要求。逻辑是表中包含事件,这些事件当然在时间戳范围内,我想将它们从最新到最快排序…@GordonLinoff Answer使我的列输出消失ear…编辑旧答案,不带这些。。。