フィルタ基準を使用して、ストレージデータベース(SQL Server)から値を取得しています。
StartDateとEndDateのさまざまなイベントコンポーネントベースを取得するために、以下のコードを記述しました。
ItemSchemaCriteria isEvent= new ItemSchemaCriteria(SchemaID);
Query query= new Query();
Criteria mainCriteria;
mainCriteria = CriteriaFactory.And(isEvent, isEvent);
DateTime lowerDate = DateTime.Now;
DateTime lower;
string lowerDateString=lowerDate.ToString("yyyy-MM-dd HH:mm:ss.000");
lower=Convert.ToDateTime(lowerDateString);
CustomMetaKeyCriteria dateKeyCriteria = new CustomMetaKeyCriteria("EventStartDate",Criteria.GreaterThanOrEqual);
CustomMetaValueCriteria dateValueCriteria = new CustomMetaValueCriteria(dateKeyCriteria,lower);
CustomMetaKeyCriteria dateEndKeyCriteria = new CustomMetaKeyCriteria("EventEndDate",Criteria.GreaterThanOrEqual);
CustomMetaValueCriteria dateEndValueCriteria = new CustomMetaValueCriteria(dateEndKeyCriteria,lowerDate);
Criteria OrCriteria=CriteriaFactory.Or(dateValueCriteria,dateEndValueCriteria);
mainCriteria = CriteriaFactory.And(mainCriteria,OrCriteria);
正確な日付と時刻(2012-10-30 16:00:00.000)を指定すると、上記のコードでいくつかのレコードが得られます。ただし、FromdateとToDate(10日間)を指定しようとすると、データベースにいくつかのレコードがある場合でも、レコードは返されません。指定されたEventStartDateとEventEndDateの間のすべてのイベントを返すdateKeyCriteriaを指定する際に、間違いがありますか?