In einer SharePoint-Kalenderliste erstelle ich zwei Ereignisse mit dem heutigen Datum. Eine mache ich eine ganztägige Veranstaltung, die andere stelle ich die Startzeit auf 12 Uhr und die Endzeit auf 23:55 Uhr.SharePoint - ganztägige Ereignisse verhalten sich in der CAML-Abfrage unterschiedlich
Wenn ich eine CAML-Abfrage erstellen (in diesem Fall mit "U2U CAML Query Builder"), sehe ich ein seltsames Verhalten. Wenn meine Abfrage eine einfache "OrderBy" ist, werden beide Ereignisse zurückgegeben.
Wenn ich die folgende Abfrage ausführen, die für Veranstaltungen sucht, die größer als oder gleich heute sind, nur das Ereignis, das NICHT als „All Day Event“ markiert ist zurückgegeben:
<Where>
<Geq>
<FieldRef Name='EventDate' />
<Value Type='DateTime'>2009-10-05T00:00:00Z</Value>
</Geq>
</Where>
Prüfungs die Ergebnisse aus dem Abfrage-Generator-Tool Ich sehe, dass die Werte für EventDate (der interne Name der Spalte Startzeit) identisch sind (2009-10-05 00:00:00).
Warum behandelt SharePoint diese beiden Ereignisse identisch? Könnte es ein Zeitzonenproblem sein?
EDIT: Weitere Informationen, ich denke, das könnte ein Zeitzonenproblem sein. Ich entdeckte das Attribut "IncludeTimeValue" des Value-Elements - hier beschrieben: MSDN. Ich bin an der Ostküste (derzeit GMT - 4 Stunden). Wenn ich das Value
Element bearbeiten wie folgt: (beachten Sie das Datum ist jetzt die vierte, nicht 5.)
<Value Type='DateTime' IncludeTimeValue='True'>2009-10-04T20:00:00Z</Value>
Dann werden beide Ereignisse zurückgegeben werden, aber wenn ich zu 20.01 steigen dann verliere ich den ganzen Tag über Veranstaltung. Wenn ich zu 20:01 gehe, verliere ich auch das ganztägige Ereignis. Wer weiß, wo ich eine gründliche Beschreibung dieses Verhaltens finden kann?
EDIT2: Ich habe mich verwirrt; Die erste Änderung wurde korrigiert.
Convert.ToBoolean (Element ["fAllDayEvent"]) war genau das, wonach ich suchte. Vielen Dank! –