Php 字段类型为varchar时短日期出现问题
我在数据库中有日期字段,但不幸的是日期字段类型是varchar。日期插入,如2010年7月8日(dd-mm-yy)。我想按asc订单(年份)的日期缩短数据,如2009年7月8日、2010年7月7日。当我使用“按日期订购asc”时,是按年份的短数据,如2010年7月7日、2009年7月8日。请给我任何建议,如果你有我的疑问是Php 字段类型为varchar时短日期出现问题,php,mysql,sql,database,Php,Mysql,Sql,Database,我在数据库中有日期字段,但不幸的是日期字段类型是varchar。日期插入,如2010年7月8日(dd-mm-yy)。我想按asc订单(年份)的日期缩短数据,如2009年7月8日、2010年7月7日。当我使用“按日期订购asc”时,是按年份的短数据,如2010年7月7日、2009年7月8日。请给我任何建议,如果你有我的疑问是 select * from tbl_name order by date asc 这就是问题所在,无论是否将日期存储在varchar中,都应该将日期存储在mysql原生日期
select * from tbl_name order by date asc
这就是问题所在,无论是否将日期存储在varchar中,都应该将日期存储在mysql原生日期数据类型中。 但是,在您的情况下,您需要使用函数将varchar日期转换为real日期
str\u to\u date
mysql> select str_to_date('08-07-2010','%d-%m-%Y');
+--------------------------------------+
| str_to_date('08-07-2010','%d-%m-%Y') |
+--------------------------------------+
| 2010-07-08 |
+--------------------------------------+
因此,查询应该是
select * from tbl_name order by str_to_date(date,'%d-%m-%Y') asc