【问题标题】:How to convert date format in MySQL?如何在 MySQL 中转换日期格式?
【发布时间】:2018-10-23 06:31:30
【问题描述】:

我在数据库中有一些日期格式为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 日期以及如何按订单获取?

【问题讨论】:

  • 你正在使用什么 rdbms?
  • 我正在使用 MySQL

标签: php mysql sql date


【解决方案1】:

您似乎将日期存储为 text,采用非标准格式,例如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_TO_DATE。使用文本日期会减慢您的速度,并成为真正的性能杀手。

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

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

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

【讨论】:

猜你喜欢
  • 2014-02-25
  • 2016-11-04
  • 1970-01-01
  • 1970-01-01
  • 2017-08-15
  • 1970-01-01
  • 2014-09-05
  • 2020-04-29
  • 2011-08-13
相关资源
最近更新 更多