在MySQL中使用varchar类型设置的日期排序

为此,请按照以下语法在MySQL中使用ORDER BY STR_TO_DATE-

select *from yourTableName ORDER BY STR_TO_DATE(yourColumnName, '%M %Y') DESC;

让我们首先创建一个表-

mysql> create table DemoTable678(DueDate varchar(200));

使用insert命令在表中插入一些记录。我们在这里插入了日期-

mysql> insert into DemoTable678 values('March 2019');
mysql> insert into DemoTable678 values('November 2018');
mysql> insert into DemoTable678 values('January 2019');

使用select语句显示表中的所有记录-

mysql> select *from DemoTable678;

这将产生以下输出-

+---------------+
| DueDate       |
+---------------+
| March 2019    |
| November 2018 |
| January 2019  |
+---------------+
3 rows in set (0.00 sec)

以下是按日期排序的查询,该日期设置为varchar类型-

mysql> select *from DemoTable678 ORDER BY STR_TO_DATE(DueDate, '%M %Y') DESC;

这将产生以下输出-

+---------------+
| DueDate       |
+---------------+
| March 2019    |
| January 2019  |
| November 2018 |
+---------------+
3 rows in set (0.00 sec)