Tu trzeba poruszyć dwie kwestie. Pierwsza to taka, iż zapytania CAML w SharePoint korzystają z zapisu daty w standardzie ISO 8601. Czym to się różni od standardowego zapisu? Domyślnie podalibyśmy taką datę:
2008-09-02 11:30
Lub
2008-09-02 11:30 AM
ISO 8601 rozróżnia część daty od godziny poprzez literę T i Z oraz niwelując ‘przełącznik’ AM/PM:
2008-09-02T11:30:00Z
Jak widać, ISO 8601 zawiera także sekundy :) Na szczęście sami nie musimy o tym pamiętać, MOSS/WSS dostarcza nam funkcję, która za nas to wykona:
string iso8610DateFormat = SPUtility.CreateISO8601DateTimeFromSystemDateTime(DateTime.Now);
Teraz, jeżeli zrobimy domyślne zapytanie do pobrania elementów stworzonych danego dnia o danej godzinie:
<Where>
<Eq>
<FieldRef Name='Created' />
<Value Type='DateTime'>2008-09-02T11:30:00Z</Value>
</Eq>
</Where>
To SharePoint będzie szukał takich elementów, które zostały stworzone dnia 2008-09-02 pomijając godzinę.
Obejście problemu jest dość proste. Wystarczy, że zmodyfikujemy Tag Value dodając do niego atrybut IncludeTimeValue=’TRUE’:
<Where>
<Eq>
<FieldRef Name='Created' />
<Value Type='DateTime' IncludeTimeValue='TRUE'>2008-09-02T11:30:00Z</Value>
</Eq>
</Where>
Teraz MOSS/WSS będzie szukał tych elementów, które zostały stworzone dnia 2008-09-02 o godzinie 11:30.














