Mysql varchar日期的最大值

Mysql varchar日期的最大值,mysql,sql,date,Mysql,Sql,Date,我需要从tablemysql数据库中查找最大日期。我将我的日期存储为varchar 从表中选择maxcompletion\u date\u name返回错误的值 我不知道你为什么要把它保留为varchar而不是date。 但这对varchar有效: SELECT completion_date FROM test ORDER BY STR_TO_DATE(completion_date, '%m/%d/%Y') DESC LIMIT 1; 嗯,差不多吧。这是一个php脚本,您需要提供的只是排序

我需要从tablemysql数据库中查找最大日期。我将我的日期存储为varchar

从表中选择maxcompletion\u date\u name返回错误的值


我不知道你为什么要把它保留为varchar而不是date。 但这对varchar有效:

SELECT completion_date
FROM test
ORDER BY STR_TO_DATE(completion_date, '%m/%d/%Y') DESC LIMIT 1;

嗯,差不多吧。这是一个php脚本,您需要提供的只是排序函数,如果相等,则返回0;如果较早,则返回1;如果较早,则返回-1。

假设您的小提琴中有日期时间格式,例如“12/19/2012 05:30 PM”,则:

select max(STR_TO_DATE(completion_date, '%m/%d/%Y %l:%i %p')) from test;

现在还不清楚你是想在排名中考虑时间因素,还是仅仅考虑日期因素。此示例也考虑了时间,但如果需要,您可以删除格式化程序的该部分。

使用适当的类型修复表格以存储日期。然后使用max。使用date数据类型。错误1:存储为varchar。因为日期是字符串,所以字符串规则将应用于最大/最小决策。您的日期不是最重要的第一次排序,因此您得到的正是您想要的:最大字符串我想要maxcompletion\u dateSELECT maxcompletion\u dateyup上面的将为您提供最大完成日期,因为我们按降序排序,然后将其限制为一个输出,从而产生最大值。在您提供的fiddler中运行它,您将看到正确的输出。@Learner2011如果这解决了您的问题,请接受答案。
select max(STR_TO_DATE(completion_date, '%m/%d/%Y %l:%i %p')) from test;