查询MySQL中如何选择最晚日期之前的日期

查询MySQL中如何选择最晚日期之前的日期,mysql,Mysql,我需要关于mysql查询的帮助 我想在mysql查询中选择最晚日期之前的日期。例如,日期为: 2013-01-29, 2013-02-28, 2013-03-29 输出必须为2013-02-28 必须使用哪个sql子句来返回所述输出 提前谢谢。你试过什么吗 select yourDate from yourTable order by str_to_date(yourDate, '%Y/%m/%d') desc limit 2, 1 如果要避免重复,请在订单之前添加group by yourD

我需要关于mysql查询的帮助

我想在mysql查询中选择最晚日期之前的日期。例如,日期为:

2013-01-29, 2013-02-28, 2013-03-29

输出必须为2013-02-28

必须使用哪个sql子句来返回所述输出


提前谢谢。

你试过什么吗

select yourDate from yourTable order by str_to_date(yourDate, '%Y/%m/%d') desc limit 2, 1
如果要避免重复,请在订单之前添加group by yourDate子句,限制将为1,1,而不是2,1

编辑

由于该字段是一个varchar,并且您希望将order作为日期而不是varchar,因此需要按order by强制转换该字段

SELECT MAX( date )
  FROM TABLE
 WHERE date < ( SELECT MAX( date )
                 FROM TABLE )

长官,我对细节感到困惑。那是干什么的?为了第二次约会。子查询将最新日期返回到主查询,我们发现一个日期小于最新日期。选中此复选框,我可以在where子句中使用列date。我的意思是把“日期”改成“细节”一栏?先生,我已经试过了。但是输出是最晚的日期。@Jessa:不!您可以在上面的评论中看到实况演示。让我知道你到底想要什么。先生,我尝试过你的建议,但输出是最新的日期。字段是date或varchar?这就是问题所在。如果是一个varchar,它的行为就像一个字符串,因此它的顺序与日期不同。您需要将字段强制转换为日期。让我来编辑一下query@Gonzalo. 先生,我怎样才能把这条线拉到今天。我将使用什么sql子句?我已经用cast编辑了查询!参见order by子句中的差异