在SharePoint日历列表中,我创建了两个今天日期的事件。一个是全天事件,另一个则将开始时间设为上午12点,结束时间设为晚上11:55。当我使用"U2U CAML Query Builder"创建一个CAML查询时,出现了一些奇怪的行为。当我的查询只是一个简单的"OrderBy"时,两个事件都会被返回。但是当我执行以下查询来搜索大于或等于今天的事件时,只有未标记为"全天事件"的事件被返回:
使用查询生成器工具检查结果后,我发现“EventDate”(开始时间列的内部名称)的值是相同的(2009-10-05 00:00:00)。为什么SharePoint会将这两个事件视为相同?这可能是一个时区问题吗?
编辑:更多信息,我认为这可能是一个时区问题。我发现“Value”元素的“IncludeTimeValue”属性 - 在这里描述:MSDN。我在东海岸(目前是GMT-4小时)。如果我按以下方式编辑“Value”元素:(请注意,日期现在是4号而不是5号)
然后两个事件都会被返回,但是如果我将时间调整到20:01,那么我就会失去全天事件。当我调整到20:01时,我也会失去全天事件。有人知道我在哪里可以找到这种行为的详细描述吗?
<Where>
<Geq>
<FieldRef Name='EventDate' />
<Value Type='DateTime'>2009-10-05T00:00:00Z</Value>
</Geq>
</Where>
使用查询生成器工具检查结果后,我发现“EventDate”(开始时间列的内部名称)的值是相同的(2009-10-05 00:00:00)。为什么SharePoint会将这两个事件视为相同?这可能是一个时区问题吗?
编辑:更多信息,我认为这可能是一个时区问题。我发现“Value”元素的“IncludeTimeValue”属性 - 在这里描述:MSDN。我在东海岸(目前是GMT-4小时)。如果我按以下方式编辑“Value”元素:(请注意,日期现在是4号而不是5号)
<Value Type='DateTime' IncludeTimeValue='True'>2009-10-04T20:00:00Z</Value>
然后两个事件都会被返回,但是如果我将时间调整到20:01,那么我就会失去全天事件。当我调整到20:01时,我也会失去全天事件。有人知道我在哪里可以找到这种行为的详细描述吗?