Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 字段类型为varchar时短日期出现问题_Php_Mysql_Sql_Database - Fatal编程技术网

Php 字段类型为varchar时短日期出现问题

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原生日期

我在数据库中有日期字段,但不幸的是日期字段类型是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原生日期数据类型中。 但是,在您的情况下,您需要使用函数将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