質問

私は書いています SPSiteDataQuery そして、私はに問題を抱えています Query 財産。すべての結果を返す必要があります Record_x0020_Yr_x0020_End_x0020_Date 現在の年の12/31から90日前です。

例:このクエリを今すぐ実行した場合、日付が2011年9月31日から2012年31日/31/31の間にあるすべてのアイテムを取得する必要があります。来年の任意の時点でクエリを実行した場合、2012年9月31日/2012-12/31/2012を取得する必要があります。これが私がこれまでに持っているものです:

query.Query = string.Format(@"
<Where>
    <Eq>
        <FieldRef Name='Record_x0020_Yr_x0020_End_x0020_Date' />
        <Value Type='DateTime' IncludeTimeValue='FALSE'>{0}</Value>
    </Eq>
</Where>", new DateTime(DateTime.Now.Year, 12, 31).ToString("yyyy-MM-dd"));

これにより、日付が年末になるすべての人が私に与えられますが、範囲を追加するにはどうすればよいですか?

役に立ちましたか?

解決

ダウンロードa U2UによるこのようなCAMLクエリビルダーツール 構文を正しくするのに役立ちます。

このツールを使用して、これは開始日> = 1/2011年1月1日と2011年12月31日/12月31日に得られるものです。これをリスト列と日付範囲に適合させることができます。

<Query>
  <Where>
    <And>
      <Geq>
        <FieldRef Name="StartDate" />
          <Value IncludeTimeValue="TRUE" Type="DateTime">2011-01-01T15:55:52Z</Value>
      </Geq>
      <Leq>
        <FieldRef Name="StartDate" />
        <Value IncludeTimeValue="TRUE" Type="DateTime">2011-12-31T15:56:29Z</Value>
      </Leq>
    </And>
  </Where>
</Query>

他のヒント

これをチェックしてください:

http://social.msdn.microsoft.com/forums/en-us/sharepointdevelopment/thread/076c57b1-a780-4b86-b00b-849fa8789318

あなたの2つの日付:

DateTime lastDay = new DateTime(DateTime.Now.Year, 12, 31);
DateTime dtThreeMonthsPrior = lastDay.AddMonths(-3);

また、あなたの質問では、9か月が30日しかないので、9/31のように日付を9/31のように言及しました。笑

ライセンス: CC-BY-SA帰属
所属していません sharepoint.stackexchange
scroll top