Domanda

sto scrivendo un SPSiteDataQuery e sto avendo problemi con la proprietà Query. Ho bisogno di tornare tutti i risultati in cui la Record_x0020_Yr_x0020_End_x0020_Date è compresa tra 12/31 del corrente anno e 90 giorni prima.

Esempio: Se ho eseguito questa query ora, dovrei avere tutti gli elementi in cui le bugie data tra il 9/31 / / 31/2011 2011-12. Se ho eseguito la query in qualsiasi punto del prossimo anno, dovrei ottenere 9/31 / 2012-12 / 31/2012. Ecco quello che ho finora:

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"));

Questo mi dà tutti coloro la cui data è sulla fine dell'anno, ma come faccio ad aggiungere l'intervallo?

È stato utile?

Soluzione

CAML Query Builder strumento come questo di U2U per aiutarvi ad ottenere il diritto di sintassi .

Utilizzando questo strumento è ciò che ho per Data di inizio> = 1 / Gen / 2011 E StartDate <= 31 / Dic / 2011 -. È possibile adattare questo per le colonne di elenco e l'intervallo di date

<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>

Altri suggerimenti

Check this out:

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

Il due date:

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

Inoltre, nella sua domanda lei ha citato come data 9/31 nullo a causa 9 ° mese ha solo 30 giorni .. lol

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top