SharePoint Pnp PowerShell日期查询

时间:2018-01-10 13:50:02

标签: powershell sharepoint-online

我正在使用SharePoint Online,并希望使用PnP PowerShell构建查询,以检查日期字段Aviseringsdatum中的任何日期是否等于今天的日期。但我的代码仍然返回所有项目(目前列表中有2个项目。一个是今天的日期,另一个是昨天的日期)。有什么想法吗?

守则

 $Today = (Get-date).ToString( "yyyy-MM-ddTHH:mm:ss.fffffffZ" )
    $ListItems = Get-PnPListItem -List "Avtal" -Query "
        <Query>
           <Where>
              <eq>
                 <FieldRef Name='Aviseringsdatum' />
                 <Value IncludeTimeValue='TRUE' Type='DateTime'>$Today</Value>
              </eq>
           </Where>
        </Query>
        <ViewFields>
           <FieldRef Name='Title' />
           <FieldRef Name='Aviseringsdatum' />
           <FieldRef Name='Avtalsansvarig' />
        </ViewFields>
        <QueryOptions />
        ";

1 个答案:

答案 0 :(得分:0)

您在CAML查询中缺少<View>属性。

PnP PowerShell内部使用CSOM。

要在CSOM中查询列表项,您需要<View>属性。

所以,修改你的代码如下:

$Today = (Get-date).ToString("yyyy-MM-ddTHH:mm:ss.fffffffZ")

$camlQuery = $("<View>
        <Query>
           <Where>
              <Eq>
                 <FieldRef Name='Aviseringsdatum' />
                 <Value IncludeTimeValue='TRUE' Type='DateTime'>$Today</Value>
              </Eq>
           </Where>
        </Query>
        <ViewFields>
           <FieldRef Name='Title' />
           <FieldRef Name='Aviseringsdatum' />
           <FieldRef Name='Avtalsansvarig' />
        </ViewFields>
    </View>")

$ListItems = Get-PnPListItem -List "Avtal" -Query $camlQuery

您也可以替换该行以使用开箱即用的<Today/>元素,如下所示:

<Value IncludeTimeValue='TRUE' Type='DateTime'><Today /></Value>

所以,你的完整代码就像:

$camlQuery = $("<View>
            <Query>
               <Where>
                  <Eq>
                     <FieldRef Name='Aviseringsdatum' />
                     <Value IncludeTimeValue='TRUE' Type='DateTime'><Today /></Value>
                  </Eq>
               </Where>
            </Query>
            <ViewFields>
               <FieldRef Name='Title' />
               <FieldRef Name='Aviseringsdatum' />
               <FieldRef Name='Avtalsansvarig' />
            </ViewFields>
        </View>")

$ListItems = Get-PnPListItem -List "Avtal" -Query $camlQuery