您可以使用cfqueryparam和cfsqltype为CF_SQL_TIMESTAMP。 给出了“startDate”和“endDate”变量,下面的代码应该可以工作。如果任何的startDate或结束日期设定为像假的话,就不会被包含:
<cfset startDate = createDate(2010, 01, 19) />
<cfset endDate = createDate(2010, 01, 26) />
<cfquery name="q" datasource="#request.dsn#">
SELECT *
FROM myTable
WHERE
(
<cfif isDate(startDate)>
dateAdded >= <cfqueryparam value="#dateFormat(startDate, "YYYY/MM/DD")#" cfsqltype="CF_SQL_TIMESTAMP" />
</cfif>
<cfif isDate(endDate)>
<cfif isDate(startDate)>AND</cfif>
dateAdded <= <cfqueryparam value="#dateFormat(endDate, "YYYY/MM/DD")#" cfsqltype="CF_SQL_TIMESTAMP" />
</cfif>
)
</cfquery>
尝试运行同样的事情,但无论是的startDate或结束日期设置为false,如下面来看看它是如何工作在一个单一的查询:
<cfset startDate = false />
<cfquery name="q" datasource="#request.dsn#">....
我如何格式化字符串“03/12/2010”成为你所拥有的上述接受:YourdateValue – AnApprentice 2010-03-13 23:58:43