mysql - SQL Order BY Varchar 作为日期时间

标签 mysql sql datetime sql-order-by

我的数据库中有一个 varchar 行,看起来像 dd/mm/yyyy。 我正在尝试订购它,但目前它按天 -> 月 -> 年而不是年 -> 月 -> 天排序。

我尝试过使用

SELECT * FROM Evenement
ORDER BY CONVERT(DateTime, DateEvenement,103)";

所以它应该正确排序。

遗憾的是,我在使用它时遇到错误

Erreur sur la requete : <font color="red">SELECT * FROM Evenement ORDER BY CONVERT(DateTime, DateEvenement,103)|Erreur de syntaxe près de 'DateEvenement,103)' à la ligne 1</font>

我似乎无法弄清楚出了什么问题。

代码:

$SQL = "SELECT * FROM Evenement ORDER BY CONVERT(DateTime, DateEvenement,103)";
$AllEvents = parcoursRs(SQLSelect($SQL));
header('Content-type: application/json');
echo json_encode($AllEvents);

ParcoursRS:

function parcoursRs($result) {
    if($result == false) return array();

    while ($ligne = mysqli_fetch_assoc($result)) 
        $tab[]= $ligne;

    return $tab;
}

我尝试使用 json 的地方:

success: function (data) {
    console.log(data);

    listEvent = "";
    for (i = 0; i < data.length; i++) {
        listEvent += "<div class='evenement'>";
        listEvent += "<input type='button' class='delete' value='Supprimer' title='" + data[i].idEvenement + "'/>";
        listEvent += "<label>Évènement: " + data[i].Titre + "</label></br><label>Heure de début: " + data[i].HeureDebut + "</label></br><label> Heure de fin: " + data[i].HeureFin + "</label></br><label> Description : " + data[i].Presentation + "</label></br><label> Date : " + data[i].DateEvenement + "</label></br>";
        listEvent += "</div>";
    }

如果我使用,它可以完美运行(使用错误的顺序...)

$SQL = "SELECT * FROM Evenement ORDER BY DateEvenement";

预先感谢您的帮助。

最佳答案

您需要为mysql使用str_to_date函数,如下所示

order by str_to_date(col_name,'%d/%m/%Y');

关于mysql - SQL Order BY Varchar 作为日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29818464/

相关文章:

mysql - 使用 group by 和 where 时检索最新项目

javascript - 如何在NodeJS中的MySQL查询中增加外部变量值

mysql - Mariadb mysql-slow-query.log

sql - 我写了一个触发器,但不起作用。我错过了什么吗?

sql - 改进/优化 SQL Server 中的 LEFT JOIN

mysql - 将日期时间插入 MySQL 表超过 24 小时标记

html - 无法将 &lt;input type ="datetime-local"/> 的秒值设置为 0

c# - 使用从数据库检索的 DateTime 进行减法给出奇怪的结果

php - PHP 函数中的 SQL 更新查询错误

php - 如何在android中安排通知并在固定时间发送