【问题标题】:MySQL Interval Expiry from Creation Timestamp创建时间戳的 MySQL 间隔到期
【发布时间】:2014-04-28 14:08:44
【问题描述】:

我正在做一个项目,其中一个人“点燃一根虚拟蜡烛”,我想创建一个 cron 作业,从数据库中选择所有在未来五天内到期的记录,可能从数据库“created_date”字段计算哪个类型是“类型:TIMESTAMP > CURRENT_TIMESTAMP”

过程: 蜡烛持续时间 = 30 天 警报期 = 5 天前 30 天

这是我目前所拥有的(我可以做剩下的,这是我遇到问题的查询)

$query_rsQueryA = "SELECT * FROM $databaseName WHERE created_date + INTERVAL 5 DAY < CURRENT_TIMESTAMP;";
$rsQueryA = mysql_query($query_rsQueryA) or die(mysql_error());
$row_rsQueryA = mysql_fetch_assoc($rsQueryA);
$totalRows_rsQueryA = mysql_num_rows($rsQueryA); 

提前致谢!

【问题讨论】:

  • 您能否具体说明您对此查询的问题?
  • 是的,对不起。它确实有效。

标签: php mysql timestamp intervals


【解决方案1】:

看来我上面写的确实有效,应该先尝试一下,对不起!

【讨论】:

  • 呃,你的意思是:'应该先尝试一下'?在提出问题之前,您实际上没有尝试测试自己的代码?罗夫
【解决方案2】:

你可以使用下面的

datediff(now(),date_add(created_date,INTERVAL 25 day)) > 0 

所以基本上它在 created_date 上增加了 25 天,然后找到与当前日期的差异,如果它大于 0 意味着开始发送警报

【讨论】:

  • 效果很好,但是它通过我的代码完成了一些其他的事情,所以我现在已经将 expiry_date 添加到数据库中,现在需要对它们做同样的事情。有什么想法吗?
  • 如果您在数据库中设置过期日期会更容易,只需像 datediff(now(),expiry_date) &gt;=0 这样它就会找到与 0 的差异,即今天过期,昨天等。
  • 基于 CREATED (2014-04-28 07:51:11) EXPIRY (2014-05-03 07:51:11) 的固定号码不起作用,但这确实显示在查询中: $query_rsQueryA = "SELECT * FROM $databaseName WHERE datediff(now(),expiry_date) > -6";
  • 啊,我明白了,很抱歉你可以像datediff(expiry_date,now()) &gt;=0那样做
  • 谢谢,但不是今天,我需要在到期前 5 天 :) - 这是最好的方法吗?
猜你喜欢
  • 2015-08-02
  • 2015-01-14
  • 2011-03-30
  • 2010-10-23
  • 2019-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多