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

ColdFusion:如何检查提交日期后的15天?,coldfusion,Coldfusion,我在数据库中保存了几个帐户。我想通过电子邮件发送已过期15天的帐户SDD。换句话说,如果提交日期(日期格式:mm dd yyyy)比今天晚15天,则发送电子邮件。我该怎么做?任何信息都非常感谢。谢谢。您可能想使用dateDiff功能 <cfif dateDiff('d',submittedDate,now()) GT 15> <cfif dateDiff('d',CreateODBCDate(submittedDate),now()) GT 15> 如果您希望通过查询

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

您可能想使用
dateDiff
功能

<cfif dateDiff('d',submittedDate,now()) GT 15>
<cfif dateDiff('d',CreateODBCDate(submittedDate),now()) GT 15>
如果您希望通过查询提取所有帐户,这将起作用。这将在MSSQL上起作用

SELECT relevant, columns
FROM myTable
WHERE dateDiff(d,submittedDate,getDate()) > 15
没有更多的细节(数据库类型、数据类型、etectera),这只是一个有根据的猜测。但听起来你好像在问如何找到15天前提交的所有记录,而不管时间。例如,如果现在的日期和时间是2013年7月29日上午8:49,则您希望检索2013年7月14日(午夜12点到晚上11:59:59之间的任何时间)提交的所有记录

使用简单范围比较的查询应该可以做到这一点。注意:虽然Matt的建议(或您数据库的版本)也可以,但经常以这种方式使用函数。因此,最好使用索引更友好的表达式,如:

<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>

选择电子邮件地址
从你的桌子上
提交地点>=
并提交

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

您能否确认您是将日期存储为日期,还是如您所说,将日期存储为格式为
mm dd yyyy
的字符串。如果真的是后者,你应该考虑改变它。在查询方面,FYI使用这样的数据库函数。(旧条款,但概念仍然适用)。最好重新构造表达式以避免它(请参见中的示例)。