cfspreadsheet
という名前の日付列に「Actiondate」という名前のクエリが作成されていて、isDate()
を使用してクエリをループすると、そのクエリは日付列であることが示されます。文字列として扱われます。私はwhere句で日付フィルタを適用するときに、それが正しく比較を行いません。クエリ日付比較のColdFusionクエリ
<cfquery ... >
SELECT *
FROM arguments.q
WHERE 1=1
<cfif isDate(arguments.dateFrom)>
AND actiondate >= <cfqueryparam cfsqltype="cf_sql_timestamp" value="#arguments.dateFrom#">
</cfif>
<cfif isDate(arguments.dateFrom)>
AND actiondate <= <cfqueryparam cfsqltype="cf_sql_timestamp" value="#arguments.dateTo#">
</cfif>
</cfquery>
actiondate
はmm/dd/yyyy
の形式で提供されます。私はテストとして文字列リテラルを使用して、where句を行うと、それが動作します:クエリをループするとき
...where actiondate = '11/05/2015' --returns all rows with that "date"
<cfset tempdate = createdate(2015,11,5)>...
...where actiondate = <cfqueryparam cfsqltype="cf_sql_date" value="#temp#"> --returns nothing
しかし、再び、isDate(actiondate)
はtrueを返します。私は問題を回避することができますが、私はまだクエリのクエリを使用する必要があることを行う方法はありますか? (コメントから...)
両方のcfifが同じ値をチェックすることがわかりましたか? – Tomalak
パラメータを引用符で囲みます。 '' ''それは動作しますか? –
trincot
@trincot、あなたはそれを自分で試しましたか?期待した結果が得られましたか? –