Polecam

.NET Blogs PL
CodeGuru


Tips & Tricks 06: CAML Pobranie elementów po dacie z godziną

September 4, 2008 in categories: pro by Gutek

1

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.




 

 

 

1 trackbacks or pingbacks for "Tips & Tricks 06: CAML Pobranie elementów po dacie z godziną"

Comments are closed

© 2008-2010 Jakub Gutkowski. Powered by BlogEngine.NET 1.5.1.14. Hosted on OrcsWeb.

Design