3

次のコードを使用しています。

var searcher = ExamineManager.Instance
                             .SearchProviderCollection[SearchProviderName];

var criteria = searcher.CreateSearchCriteria();

q = q.And()
     .Range("dateRangeStart", 
       startRange.ToString("yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture), 
       endRange.ToString("yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture), 
        true, true)
          );

criteria = q.Compile();
var searchResult = searcher.Search(criteria).AsEnumerable();

これは、単一の日付範囲内の単一の日付に基づいて検索する場合にうまく機能します。ただし、必要なのは、日付のいずれかが指定された日付範囲内にある場合に結果を返す 2 つの日付を使用した検索です。

4

1 に答える 1

0

おそらく、同じ範囲で別のフィールドに対してさらに AND を実行できます。

q = q.And()
 .Range("dateRangeStart", 
   startRange.ToString("yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture), 
   endRange.ToString("yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture), 
   true, true)
 .And().Range("dateRangeEnd", 
   startRange.ToString("yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture), 
   endRange.ToString("yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture), 
   true, true);

これは、もう一方のフィールドが と呼ばれていることを前提としていdateRangeEndます。

于 2013-09-16T16:44:45.933 に答える