varchar 日期转换为 max() date() mysql

varchar date conversion to max() date() mysql

在我的数据库中,列类型是 varchar(30),它存储日期 (24/02/2018),有多个记录。 我想要最大日期,例如我有 10/01/2016、20/03/2017、24/02/2018。 我正在使用以下查询:

SELECT MAX(receipt_date) as rd FROM tblname

哪个 returns 我 10/01/2016 哪个是错误的。 我还尝试将其转换为日期格式。但失败了。 mysql 给我语法错误。

SELECT CONVERT(varchar, mycolumn, 105) FROM tblname

但失败了。

这就是我要做的:

ALTER TABLE tblname ADD COLUMN receipt_date2 DATE;

UPDATE tblname SET receipt_date2 = STR_TO_DATE(receipt_date, '%d/%m/%Y');

ALTER TABLE tblname DROP COLUMN receipt_date,
  CHANGE receipt_date2 receipt_date DATE;

SELECT MAX(receipt_date) AS rd FROM tblname;

如果以 dd-mm-yyyy 格式存储为 VARCHAR,则无法在 MySQL 中有效使用日期。您应该使用 DATE 数据类型。 MySQL 的 DATE 数据类型仅以 yyyy-mm-dd 格式存储日期。这样它可以轻松搜索 MAX(),可以对它们进行排序,可以进行日期运算。