我有一个表格,其中一列包含日期。如何输出未来下一个日期的记录?
我的桌子:
新闻_标题 | 新闻_日期 | 新闻时间 | 新闻位置 | 新闻_笔记 |
---|---|---|---|---|
活动1 | 2020-12-15 | 10-00 | 那里 | - |
活动2 | 2020-12-20 | 10-00 | 那里 | - |
活动3 | 2020-12-25 | 10-00 | 那里 | - |
假设今天是2020年12月18日,那么我想要显示日期为2020年12月20日的记录。
我之前的代码:
$sql = "SELECT news_titel, news_date, news_time, news_location, news_notes FROM
$table WHERE news_date >= NOW() ORDER BY news_date LIMIT 1";
(注意,我当时并没有把日期处理做得很好。如果时间和日期结合起来会更好。)
如果我猜对了,你想从数据库中选择即将到来的记录。所以在这里您只是编写了一个查询但没有执行它。您还必须执行该查询才能获取记录并在如下代码中使用它:
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "Title: " . $row["news_titel"]. "<br>";
}
} else {
echo "0 results";
}
$conn->close();
这将是一个很好的 SQL 查询来实现我的目标。首先,选择要从哪个表输出的列,然后检查该日期是否是将来的日期。接下来,将记录按升序排序,并将输出的记录限制为一条。这将输出下一条记录。
SELECT name, Date FROM Datesort WHERE Date >= NOW() ORDER BY Date LIMIT 1;