当字段类型为瓦尔查尔时,短时间内出现问题


trouble in short date when field type is varchar

>我在数据库中有日期字段,但不幸的是日期字段类型是 varchar。日期插入,如 08-07-2010(日-月-年)。我想按日期 ASC 顺序(年)做空数据,例如 08-07-2009、07-07-2010。当我使用"按日期排序ASC"时,是按年份划分的简短数据,例如 07-07-2010、08-07-2009 。如果您有我的疑问,请给我任何建议

select * from tbl_name order by date asc

这就是问题所在,神经将日期存储在 varchar 中,您应该将日期存储在 mysql 本机日期数据类型中。但是,在您的情况下,您需要使用该函数将 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