In einer SharePoint-Kalenderliste erstelle ich zwei Ereignisse mit dem heutigen Datum. Eines davon ist ein ganztägiges Ereignis, für das andere setze ich die Startzeit auf 12 Uhr und die Endzeit auf 23:55 Uhr.
Wenn ich eine CAML-Abfrage erstelle (in diesem Fall mit dem "U2U CAML Query Builder"), erkenne ich ein merkwürdiges Verhalten. Wenn meine Abfrage eine einfache "OrderBy" ist, werden beide Ereignisse zurückgegeben.
Wenn ich die folgende Abfrage ausführe, die nach Ereignissen sucht, die größer oder gleich dem heutigen Tag sind, wird nur das Ereignis, das NICHT als "Ganztägige Veranstaltung" gekennzeichnet ist, wird zurückgegeben:
<Where>
<Geq>
<FieldRef Name='EventDate' />
<Value Type='DateTime'>2009-10-05T00:00:00Z</Value>
</Geq>
</Where>
Bei der Prüfung der Ergebnisse aus dem Abfrageerstellungstool sehe ich, dass die Werte für EventDate (der interne Name der Spalte Start Time) 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, es könnte ein Problem mit der Zeitzone sein. Ich entdeckte das Attribut "IncludeTimeValue" des Elements Value - hier beschrieben: エムエスディーエヌ . Ich befinde mich an der Ostküste (derzeit GMT - 4 Stunden). Wenn ich die Value
Element wie folgt: (beachten Sie, dass das Datum jetzt der 4. und nicht der 5. ist)
<Value Type='DateTime' IncludeTimeValue='True'>2009-10-04T20:00:00Z</Value>
Dann werden beide Ereignisse zurückgegeben, aber wenn ich bis 20:01 Uhr gehe, verliere ich das ganztägige Ereignis. Wenn ich bis 20:01 Uhr gehe, verliere ich auch das ganztägige Ereignis. Weiß jemand, wo ich eine ausführliche Beschreibung dieses Verhaltens finden kann?
EDIT2: Ich habe mich verwirrt; ich habe die erste Bearbeitung korrigiert.