ColdFusion:如何检查提交日期后15天?

时间:2013-07-23 02:46:25

标签: coldfusion

我在数据库中保存了几个帐户。我想通过电子邮件发送已过期15天的accountsdd。换句话说,如果提交的日期(日期格式:mm-dd-yyyy)比今天的日期早15天,则发送电子邮件。我该怎么做?任何信息都非常感谢。谢谢。

2 个答案:

答案 0 :(得分:2)

您希望使用dateDiff函数

<cfif dateDiff('d',submittedDate,now()) GT 15>

如果您的日期确实存储为mm-dd-yyyy而不是日期/时间对象,那么您需要使用createODBCDate函数

<cfif dateDiff('d',CreateODBCDate(submittedDate),now()) GT 15>

如果您希望通过查询提取所有帐户,这将有效。这适用于MSSQL

SELECT relevant, columns
FROM myTable
WHERE dateDiff(d,submittedDate,getDate()) > 15

答案 1 :(得分:0)

没有更多细节(数据库类型,数据类型,etectera),这只是一个有根据的猜测。但听起来你要问的是如何查找15天前提交的所有记录,无论时间如何。例如,如果日期和时间现在是2013年7月29日上午08:49,则您要检索2013年7月14日提交的所有记录(午夜12点到晚上11:59:59之间的任何时间)。

使用简单范围比较的查询应该可以解决问题。注意:虽然Matt建议dateDiff(或您的数据库版本)也可以使用,但通常以prevent the database from leveraging indexes的方式使用函数。因此,最好使用更友好的索引表达式,例如:

<cfset fifteenDaysAgo = dateAdd("d", -15, now())>
<cfquery ...>
   SELECT  emailAddress
   FROM    yourTable
   WHERE   submittedDate >= <cfqueryparam value="#fifteenDaysAgo#" cfsqltype="cf_sql_date">
   AND     submittedDate < <cfqueryparam value="#dateAdd('d', 1, fifteenDaysAgo)#" cfsqltype="cf_sql_date">
</cfquery>

然后,只需使用查询结果发送电子邮件即可。