Php 如何在MySQL中转换日期格式?

Php 如何在MySQL中转换日期格式?,php,mysql,sql,date,Php,Mysql,Sql,Date,我在数据库中有一些日期,日期格式是18-Dec-10 我将日期存储在一个数组中 $my_array=array(); $result ="SELECT * FROM table WHERE id='$id' ORDER BY date"; $ftc = mysqli_query($conn,$result)or die(mysqli_error($conn)); while($row = mysqli_fetch_arra

我在数据库中有一些日期,日期格式是
18-Dec-10

我将日期存储在一个数组中

    $my_array=array();
        $result ="SELECT * FROM table WHERE id='$id'  ORDER BY date";
            $ftc = mysqli_query($conn,$result)or die(mysqli_error($conn));
            while($row = mysqli_fetch_array($ftc)) {    
                    $my_array['arrays'][]  = $row['date'];
                    }
print_r(my_array);
我得到了类似
(5-Dec-11,7-Jan-12,8-Apr-10,10-May-2010)

我没办法把这个订下来
如何将其更改为sql日期以及如何按顺序获取?

您似乎将日期存储为文本,格式为非标准格式,例如
18-Dec-10
。要处理此问题,您可以尝试使用
STR_To_DATE
,对转换为真实日期的文本日期进行排序:

SELECT *
FROM table
WHERE id = '$id'
ORDER BY STR_TO_DATE(date, '%d-%b-%y');    -- assuming you want ascending order
请注意,您最好将日期信息存储在适当的日期列中,这样可以避免调用
STR\u to\u date
。使用文本日期可能会减慢速度,并成为真正的性能杀手

此外,作为一个旁注,您应该考虑在PHP代码中使用准备好的语句。也就是说,运行类似于以下内容的查询:

SELECT *
FROM table
WHERE id = ?
ORDER BY STR_TO_DATE(date, '%d-%b-%y');

然后,以一种安全的方式将
id
值绑定到语句中,以避免SQL注入的机会。

您使用的是什么rdbms?我正在使用MySQL有空间容纳
SQL