Вы можете использовать cfqueryparam с типом cfsql CF_SQL_TIMESTAMP.
С учетом переменных «startDate» и «endDate» приведенный ниже код должен работать. Если для startDate или endDate установлено значение, подобное false, оно не будет включено:
<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 или endDate, установленным в false, как показано ниже, чтобы увидеть, как все это работает в одном запросе:
<cfset startDate = false />
<cfquery name="q" datasource="#request.dsn#">....