检查一年过去了

时间:2012-07-07 04:33:42

标签: mysql ruby datetime time

我经营一家网页设计公司,我们还每年向客户出售托管服务。我正在编写一个Ruby脚本来读取MySQL数据库中的所有客户,并检查是否已经过了一年。如果它已经(或者至少接近到期),我希望它向他们发送电子邮件。

我的电子邮件部分已关闭,但我如何检查是否已使用Time类或基于SQL的其他解决方案过了一年?

(回头看这个编辑,似乎我不太了解所需的SQL,所以对此有任何帮助表示赞赏)

1 个答案:

答案 0 :(得分:5)

如果您真的想使用ruby解决此问题,可以在处理>>时使用Date将其增加N个月(例如 11 ,这将为您的客户提供一些时间来处理付款。

当你有这个递增的日期时,你应该将它与当前日期的比较,看它是否小于或等于(即日期是过去的),如果是的话;发出你的电子邮件。

>> (Date.strptime('2012-07-07') >> 11).to_s
=> "2013-06-07"

>> if (Date.strptime('2011-06-15') >> 11) < DateTime.now
>>   print "More than 11 months has passed!"
>> end
More than 11 months has passed!=> nil

尽管如此,您可以直接在 SQL查询中解决此问题,这可以归结为以下内容:

SELECT field1, field2, ..., fieldN
FROM `customers_table`
WHERE ADDDATE(last_payment, INTERVAL 11 MONTHS) <= NOW ()
相关问题