2015-12-04 54 views
0

我正在构建日期特定的PHP脚本。MySQL更改系统日期没有预期的结果

该脚本将在其星期日执行特定任务。我写了我的PHP代码,我试图测试它。由于现在不是星期天,我将系统日期设置为上个星期天。问题是,我的MySQL查询不会返回预期的结果

SELECT date FROM schedules WHERE name='someName' AND date >= (CURDATE() - INTERVAL 3 DAY) 

上面的查询将返回当前日期加的记录,并减去3天。

下面是输出的一个例子,我得到:

2015-11-26 
2015-11-29 
2015-11-30 
2015-12-04 
2015-12-02 

,我需要的是结果:

2015-11-26 
2015-11-29 

另一个查询:

SELECT date FROM schedules WHERE name='someName' AND date >= (CURDATE() - 3) 

上面的查询将返回所有日期比当前日期早3天,但不包括当前日期的最后3天。

我只希望它返回当前日期的最后3天。

+0

不会更改为'> ='(大于或等于)做的伎俩?或者,也许只是“大于”,如果你不想要当前的日期。 – dan08

+0

我改变了我的代码。按照你的建议,我已经拥有了它,然后我得到了我描述的结果。它仍然会返回 - + 3天,而不仅仅是 - 3天的curdate()。 – m33ts4k0z

+0

我很困惑。你可以添加一些示例输出,说明问题 – dan08

回答

1

我想了解你想要的输出。所以你希望得到的日期不超过当前日期的3天,而且将来也没有。

因此,对 '2015年12月4日',结果将是:

2015-12-04 
2015-12-03 
2015-12-02 
2015-12-01 

所以,也许BETWEEN条款会做的伎俩

SELECT date FROM schedules 
WHERE name='someName' 
    AND (date BETWEEN (CURDATE() - INTERVAL 3 DAY) AND CURDATE()); 
+0

很抱歉更新了我的问题和预期的输出。 – m33ts4k0z

+0

好吧,我认为我的问题仍然在做这项工作。 – dan08

+0

是的声明之间有诀窍!我非常感谢,我会尽快接受你的回答。 – m33ts4k0z