我的日期在数据库中的varchar列中,我无法更改。但是我想从最新到最新的排序。我在数据库中的日期如下所示:
2014-09-22 10:28:28
所以我尝试的是这样的:
$sql = "SELECT * FROM axnmrs_cases WHERE vin = :vin ORDER BY STR_TO_DATE(date_created,'%b-%e-%Y') ASC LIMIT 30";
但是不幸的是,即使我将ASC更改为DESC,这对我也没有任何改变,结果没有任何改变
还有类似的东西:
$sql = "SELECT * FROM axnmrs_cases WHERE vin = :vin ORDER BY CONVERT(date_created, date, 103)";
抛出语法SQL错误,我不知道为什么。
这里有人可以向我展示正确的方法吗?
最佳答案
存储在varchar中的日期不是真实日期,因此该订单也无法满足您的需求。最好的方法是将存储日期始终存储在mysql本机数据类型中。但是,根据您的情况,您可以使用str_to_date()
函数将varchar日期转换为真实日期,然后将其用于排序
order by str_to_date(date_created,'%Y-%m-%d %H:%i:%s');
关于mysql - SQL在varchar中按日期选择顺序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26502857/