2013-05-13 35 views
0

的列比較特定日期是在當前日期時間之前獲取x天的數據。然後在出現的記錄event_start_date的值應大於或等於NOW()(當前日期時間)提前當前日期記錄的取x天通過[用於我的英語提前道歉]</p> <p>我在我的數據庫表event_start_date(用戶輸入日期時間)有一個柱和我的<strong>要求</strong>從表

`event_start_date >= NOW()` (using php or mysql) 

這是我(在Magento的Zend)迄今所做的:

$sql = $read->select() ->from(array('e' => 'my_table'));

$where = "e.event_start_date = DATE(DATE_ADD(e.event_start_date, INTERVAL x DAY))";

$sql->where($where);

echo $sql->__toString();exit; //這導致

SELECTË.* FROM 'my_table' AS 'e' WHERE (e.event_start_date = DATE(DATE_ADD(e.event_start_date, INTERVAL x DAY)))

另一個我使用是

SELECTË.* FROM 'my_table' AS 'e' WHERE DATEDIFF(e.event_start_date,DATE(DATE_ADD(e.event_start_date, INTERVAL {$x} DAY)));

兩個輸出一行僅當x = 1。解決方案是什麼?我有點卡住了。

非常感謝您的幫助。

感謝,

回答

1

它應該是這樣的:

SELECT * FROM table WHERE event_start_date BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 5 DAY) 

你聲明:

DATEDIFF(e.event_start_date,DATE(DATE_ADD(e.event_start_date, INTERVAL {$x} DAY))); 

其實就是: 「哪裏起始日期+ 3天高於起始日期高」 ,它沒有多大意義

+0

你是寫我正在嘗試成爲一個聰明的**: D,但你的解決方案工作,我會盡快接受你的答案,只要它允許我。謝謝 – 2013-05-13 11:13:28

+0

謝謝,這裏也是一個小提琴http://sqlfiddle.com/#!2/14c9e/3/0 – fsw 2013-05-13 11:14:18

+0

出色的確實 – 2013-05-13 11:15:27

相關問題