0

[提前为我的英语道歉]

我的数据库表 event_start_date (用户输入日期时间)中有一个列,我的要求是获取当前日期时间之前 x 天的数据。结果记录中 event_start_date 的值应大于或等于 NOW() (当前日期时间)

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

这就是我到目前为止所做的(zend in magento):

$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;// 这导致

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

我用的另一个是

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

仅当 x = 1 时都输出一行。解决方案是什么?我有点卡住了。

非常感谢您的帮助。

谢谢,

4

1 回答 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)));

实际上意味着:“其中 start_date + 3 天高于 start_date”,这没有多大意义

于 2013-05-13T11:08:50.883 回答