doulu7174 2013-05-13 11:01
浏览 61
已采纳

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

[apologies in advance for my english]

i have a column in my database table event_start_date (user input datetime) and my requirement is to get data of x days ahead of current datetime. and value of event_start_date in the resulting record should be greater than or equal to NOW() (current date time)

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

this is what i have done so far (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; // this results in

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

another i used is

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

both output one row if x = 1 only. what would be the solution? i am kinda stuck.

appreciate your help a lot.

thanks,

  • 写回答

1条回答 默认 最新

  • douyan5481 2013-05-13 11:08
    关注

    It should be something like:

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

    Your statement:

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

    actually means: "where start_date + 3 days is higher than start_date" and it does not make much sense

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 livecharts wpf piechart 属性
  • ¥20 数学建模,尽量用matlab回答,论文格式
  • ¥15 昨天挂载了一下u盘,然后拔了
  • ¥30 win from 窗口最大最小化,控件放大缩小,闪烁问题
  • ¥20 易康econgnition精度验证
  • ¥15 msix packaging tool打包问题
  • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置