【发布时间】:2015-03-15 22:47:46
【问题描述】:
我想获取日期最接近当前时间的所有行。 为此,我首先从所有行中获取最接近当前日期的第一个日期,然后获取日期与最接近日期相同的所有行。 希望这是有道理的..
就是这样:
SELECT *
FROM Events
WHERE StartDate = '(SELECT StartDate
FROM Events
WHERE StartDate >= CURDATE()
ORDER
BY StartDate DESC
LIMIT 1)';
无论如何,查询都不起作用。我知道子查询确实有效:
SELECT * FROM Events WHERE StartDate = SELECT StartDate FROM Events WHERE StartDate >= CURDATE() ORDER BY StartDate DESC LIMIT 1
但是当将它们组合在一起时,它不会运行。 我怀疑这可能是子查询结果的格式问题,我尝试使用 sql 函数对其进行格式化,但也没有用。
我也无权访问调试错误,因此我无法真正看到问题所在。
你能帮忙吗? 非常感谢!
【问题讨论】:
-
如果您愿意,请考虑遵循以下简单的两步操作: 1. 如果您还没有这样做,请提供适当的 DDL(和/或 sqlfiddle),以便我们可以更轻松地复制问题。 2. 如果您尚未这样做,请提供与步骤 1 中提供的信息相对应的所需结果集。
-
您确定日期只是日期,而不是日期+时间吗?如下所示,去掉引号并留下括号。毕竟这是一个事件。