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