通过比较表格列中的特定日期,在当前日期记录之前提前x天

时间:2013-05-13 11:01:48

标签: php mysql

[提前为我的英语道歉]

我的数据库表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; //导致

     

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

我使用的另一个是

  

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

如果x = 1,

都输出一行。什么是解决方案?我有点卡住了。

非常感谢你的帮助。

感谢,

1 个答案:

答案 0 :(得分: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” 并没有多大意义