首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在php中从日期字段为未来7天的数据库中选择行

问如何在php中从日期字段为未来7天的数据库中选择行
EN

Stack Overflow用户
提问于 2013-06-28 23:38:45
回答 13查看 1.7K关注 0票数 7

我有一个自动检查器,检查域名将在未来7天内到期,它发送和电子邮件给客户。

我正在使用这个SQL查询:

代码语言:javascript
复制
 $sql="SELECT * from domain_names where (status = '' or status = 'valid') and date(expiry_date) = date(now() + interval 7 day) ";

它工作得很好,但如果它停止运行,一天过去了,它就不会做它错过的域。什么是最好的方法,使它做它错过的领域也?

例如,如果一个域名在7号到期,它在1号运行,它将看到该域并向客户发送电子邮件,然后在行上放置一个标志,说明电子邮件已经发送,但如果检查器没有在1号运行,它在2号再次运行,它将看不到该域(行)

EN

回答 13

Stack Overflow用户

发布于 2014-07-08 14:39:49

只需对您的代码稍作修改(放入'<'):

代码语言:javascript
复制
$sql="SELECT * from domain_names where (status = '' or status = 'valid') and date(expiry_date) <= date(now() + interval 7 day) ";
票数 1
EN

Stack Overflow用户

发布于 2013-06-28 23:42:22

你只检查7天前的几天。您最多需要提前7天检查。将您的代码更改为:

代码语言:javascript
复制
$sql="SELECT * from domain_names where (status = '' or status = 'valid') and date(expiry_date) <= date(now() + interval 7 day) ";

因为你有一个标志,任何在这段时间内已经发送电子邮件的人都不会再收到电子邮件。

票数 0
EN

Stack Overflow用户

发布于 2013-06-28 23:42:27

您要检查日期是否小于或等于(今天+7天)。

您还应该在表中有某种“标志”,比如reminderSent -这样就不会在每次运行查询/脚本时发送多个提醒。

代码语言:javascript
复制
$sql = "SELECT * from domain_names WHERE
  (status = '' or status = 'valid') AND 
  date(expiry_date) <= date(now() + interval 7 day) AND
  AND !reminderSent";
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17368519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档