我在数据库中有日期字段,但不幸的是日期字段类型是 varchar。日期插入如 08-07-2010(dd-mm-yy)。我想按日期升序顺序(年份)做空数据,例如 08-07-2009、07-07-2010。当我使用“order by date asc”时,按年份排列的数据很短,例如 07-07-2010, 08-07-2009 。如果您有我的疑问,请给我任何建议
select * from tbl_name order by date asc
最佳答案
这就是问题所在,神经元将日期存储在 varchar 中,您应该将日期存储在 mysql native 日期数据类型中。
但是,在您的情况下,您需要使用该函数将 varchar 日期转换为实际日期
str_to_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
关于php - 当字段类型为 varchar 时,短日期会出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27056588/