你如何从表中获得下一个即将到来的日期?

时间:2009-04-13 02:59:17

标签: mysql

我目前正在建立一个棒球网站。在页面的一侧,我想显示下一个即将到来的游戏的信息。我正在使用mysql ver。 5.0.45。我的表是这样构建的:

反对队伍,日期,时间,分数

  • 日期采用mysql日期格式(yyyy-mm-dd)
  • 我找到了datediff(date1,date2)命令并试图用这个试运行没有运气

我尝试了以下查询:

SELECT *
FROM schedule
WHERE MIN(DATEDIFF(CURDATE(),date))
  • 但这让我感到恐惧,因为我使用MIN()函数错误
  • 我仍然是mysql的新手,我似乎无法弄明白

5 个答案:

答案 0 :(得分:12)

如果您想显示下一个游戏(包括今天),您可以使用以下内容:

SELECT * FROM `schedule` WHERE `date` >= CURDATE() ORDER BY `date` LIMIT 1;

如果您想显示所有即将推出的游戏,请使用:

SELECT * FROM `schedule` WHERE `date` >= CURDATE() ORDER BY `date`;

答案 1 :(得分:0)

我认为它是这样的:

SELECT * FROM `schedule` WHERE `date` > NOW() ORDER BY `date` LIMIT 1

LIMIT 1限制查询返回一行,但如果您需要多行,则可以相应地调整数量(或完全省略LIMIT 1,以获取所有未来游戏的数据)< / p>

答案 2 :(得分:0)

也许:

select top 1 * from schedule where date>=CURDATE() order by date

答案 3 :(得分:0)

要考虑几件事。

如果你将一个专栏命名为“约会”,你很可能会把自己托付给永恒的折磨。

众所周知,查询优化器在优化将表达式和/或函数与值进行比较的查询方面无能为力 - 尝试仅使用列名。

因此,您应该将日期列的值与CURDATE()进行比较。 (可以将列值与表达式或函数进行比较。)

答案 4 :(得分:0)

尝试SELECT max(day) FROM schedule

这是表格中最高的日期。

要获得第二天,请使用:

SELECT  
DATE_ADD(max(day),INTERVAL 1 DAY)
FROM schedule 

(我使用&#34;日&#34;适用于您的领域&#34;日期&#34;)