ColdFusion日期前的日期

时间:2014-12-01 23:07:52

标签: coldfusion

我似乎在这里有一个大脑放屁。我试图在今天的日期之前显示14天或更长时间内输入数据库的所有用户。出于某种原因,我要么得到所有人,要么得到所有人,而不是我需要的人。这就是我所拥有的。请告诉我哪里出错了。谢谢!

<CFSET TodaysDate = #DateFormat (Now(), "mm-dd-yyyy")#>
<CFSET CheckDate = #DateFormat(TodaysDate-14,"mm-dd-yyyy")#>

<cfquery name="getUser" datasource="DNS_Test">
    select *
    from   Login
    where  DateEntered <= #CheckDate#
</cfquery>


<cfoutput> 
<cfloop QUERY="getUser">
   #getUser.LastName#, #getUser.FirstName# <br>
<cfloop>
</cfoutput>

2 个答案:

答案 0 :(得分:14)

您需要使用DateAdd()

示例:从不use select *,而是使用列名...也使用<cfqueryparam>

进行调查
SELECT LastName, FirstName
FROM Login
WHERE DateEntered <= <cfqueryparam value="#DateAdd( 'd', -14, now() )#" CFSQLType="CF_SQL_DATE">

答案 1 :(得分:1)

您可能还想在SQL中进行计算。例如,在SQL Server中:

SELECT LastName, FirstName
FROM Login
WHERE DateEntered <= CONVERT(date, 
   DateAdd(dd, <cfqueryparam value="-14" CFSQLType="CF_SQL_INTEGER">, 
   getDate())
   )

如果DateEntered具有hh:mm:ss

,则可能需要进行一些调整