Php 从今天到明天无法获取正确的mySQL记录

Php 从今天到明天无法获取正确的mySQL记录,php,mysql,Php,Mysql,可能它被问了很多次,但我有一张有一些记录的表。有些是明天的,有些是后天的。我尝试以下方法 SELECT * FROM Games where GAMEID='".$id."' AND GAMEDATE >=CURDATE() + INTERVAL 1 DAY 我得到了日期为2017年1月10日和2017年1月11日的记录。间隔1天不应该只获得2017年1月10日的日期吗 如果我使用 GAMEDATE >= DATE_SUB(CURDATE(), INTERVAL 1 DAY) AN

可能它被问了很多次,但我有一张有一些记录的表。有些是明天的,有些是后天的。我尝试以下方法

SELECT * FROM Games where GAMEID='".$id."' AND GAMEDATE >=CURDATE() + INTERVAL 1 DAY
我得到了日期为2017年1月10日和2017年1月11日的记录。间隔1天不应该只获得2017年1月10日的日期吗

如果我使用

GAMEDATE >= DATE_SUB(CURDATE(), INTERVAL 1 DAY) AND GAMEDATE <= CURDATE()

我得到的是空查询

尝试DATE\u ADDCURDATE,间隔1天

你不能像那样使用加法。您需要使用日期\添加:


如果您想倒退,如果您只想从明天开始记录,您将使用DATE\u SUB.

请尝试此查询

select * from Games where GAMEDATE between curdate() + interval 1 day 
and 
curdate() + interval 2 day and GAMEID='".$id."';
检查演示表


我再次收集了2017年1月11日的记录,而不仅仅是2017年1月10日。当你说2017年1月10日是指2017年10月1日还是2017年1月10日?今天至少是美国东部时间第9天,所以这两个数字中的任何一个都会大于或等于预期值。检查服务器的时区。如果是第10个,你的mysql服务器可能会认为现在是第9个。希腊仍然是2017年9月1日,这就是为什么我预计是2017年10月1日,而不是2011年1月1日。查询>=意味着它匹配第10个,也匹配该日期之后的任何内容,包括第11个。如果您只需要10,那么只需使用=而不使用大于。
select * from Games where GAMEDATE between curdate() + interval 1 day 
and 
curdate() + interval 2 day and GAMEID='".$id."';