クエリのクエリから AllPosts というクエリがあります。
AllPosts には 2 つの結果があります。
Row 1| ID: 2 PublishedDate: 2012-05-30 16:47:00.0
Row 2| ID: 3 PublishedDate: 2012-05-31 15:50:00.0
を使用して FilterPosts という AllPosts でクエリのクエリを実行すると、
WHERE PublishedDate BETWEEN '2012-05-01 00:00:00' AND '2012-05-31 23:59:00'
(実際のクエリは、これらの値に対して cfqueryparam cf_sql_date を実行していることに注意してください)
FilterPosts には AllPosts と同じ行が含まれているはずですが、代わりに ID 2 しか取得できません。ID 2 の公開日を に変更すると2012-05-30 23:59:50.0
、FilterPosts は正しい結果を返します。
私も試してみました
WHERE PublishedDate >= '2012-05-01 00:00:00'
AND PublishedDate <= '2012-05-31 23:59:00'
5月31日には特に奇妙なことがあります。
ここで髪を伸ばします!ありがとう!
元のクエリをスクラッチで作成してみましたが、奇妙なことに、同じ結果が得られました。
<cfset test = queryNew("Name,PublishedDate", "VarChar, Time" )>
<cfset queryAddRow(test)>
<cfset querySetCell(test,"PublishedDate","2012-05-30 16:47:00.0")>
<cfset querySetCell(test,"Name","First Entry")>
<cfset queryAddRow(test)>
<cfset querySetCell(test,"PublishedDate","2012-05-31 15:47:00.0")>
<cfset querySetCell(test,"Name","Second Entry")>
<cfset StartDate = CreateDate(2012, 5, 1)>
<cfquery name="filter" dbtype="query">
SELECT Name, PublishedDate
FROM test
WHERE 1=1
AND PublishedDate >= <cfqueryparam value="#StartDate#" cfsqltype="cf_sql_date">
AND PublishedDate <= <cfqueryparam value="#DateAdd( 'n', -1, DateAdd('m', 1, StartDate) )#" cfsqltype="cf_sql_date">
</cfquery>
Filter の結果には、本来あるべき両方ではなく、'FirstEntry' のみが含まれます。