DateTime und CAML

SharePoint erwartet bei einer CAML-Abfrage, die DateTime-Werte filtern soll, diese im ISO8601-Format. Ein Datum in dieser Form würde z.B.  so dargestellt werden: 2009-03-08T00:00:00Z. Falls das aktuelle System-Datum integriert werden soll, reicht dagegen die Angabe <Today /> innerhalb der Abfrage aus.


Mit Hilfe der SPUtility-Klasse und der darin enthaltenen Methode CreateISO8601DateTimeFromSystemDateTime kann jeder beliebige DateTime-Wert in das korrekte Format konvertiert werden. Hier ein Beispiel einer vollständigen CAML-Query (Abfrage aller Einträge eines SharePoint-Kalenders, deren Anfangsdatum größer als das heute Datum ist):

<Query>
<Where>
<Gt>
<FieldRef Name='EventDate' /><Value Type='DateTime'>" + SPUtility.CreateISO8601DateTimeFromSystemDateTime(DateTime.Now) + "</Value>
</Gt>
</Where>
</Query>

Einen Kommentar schreiben