2015-12-04 51 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