php - 当字段类型为 varchar 时,短日期会出现问题

标签 php mysql sql database

我在数据库中有日期字段,但不幸的是日期字段类型是 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/

相关文章:

php - MySQL大于当前日期时间问题

php - PHP/MySQL 的快速应用程序开发?

PHP 显示/隐藏链接

sql - 如何使此查询返回审核表中的最新记录(MSSQL 2008)

sql - Oracle 相当于 SQL 函数 'convert'

javascript - 在 Laravel 中获取 500 内部服务器代码

php - SQL查询中MySQL字段值到时间的关系

sql - MySQL 计算字段中的 IF 条件

php - 为什么这个 PHP 脚本实际上没有向数据库中添加行?

mysql - SQL - 选择值成为列值?