我需要修改我的有效通知脚本(在成员到期前通知成员,到期日等),以特定的方式工作。
所以我在数据库(MySQL)中的expires列是datetime类型,所以它的值如下所示:2010-08-08 13:46:38
这是一件事:
可以随时从后端调用脚本,并且它希望用户输入一个例如1的数字,这意味着应该通知明天(任何时间)到期的所有成员。因此,如果脚本被调用于:2010-07-08 00:00:05所有成员的到期日期是2010-08-08 00:00:00到2010-08-08 23:59:59应该通知。或者换句话说,所有成员的到期日期都包含2010-08-08。
我正在使用ZendFramework,但我认为我也将处理MySQL代码。 我也相信你明白这个帖子我的意思,以及我想要完成的事情......
我的代码不能正常工作(对于这种方法)看起来像这样:
$d = new Zend_Db_Expr("DATE_ADD(NOW(), INTERVAL $days DAY)");
$days2 = $days-1;
$d2 = new Zend_Db_Expr("DATE_ADD(NOW(), INTERVAL $days2 DAY)");
return $this->fetchAll("status='1' AND expires <= $d AND expires >=$d2");
答案 0 :(得分:0)
要获得明天时间窗口的开始和结束,如何使用CURRENT_DATE() or CURDATE(),例如,
DATE_ADD(CURRENT_DATE(), INTERVAL $days DAY )
DATE_ADD(CURRENT_DATE(), INTERVAL $days2 DAY )
那会给你
+-------------------------------------------+-------------------------------------------+
| DATE_ADD(CURRENT_DATE(), INTERVAL 1 DAY ) | DATE_ADD(CURRENT_DATE(), INTERVAL 2 DAY ) |
+-------------------------------------------+-------------------------------------------+
| 2010-08-08 | 2010-08-09 |
+-------------------------------------------+-------------------------------------------+
你需要稍微调整你的不平等:
------- use less-than instead of less-than-or-equal.
expires < $d AND expires >=$d2