Sharepoint 2013 获取最近30天数据的Caml查询

Sharepoint 2013 获取最近30天数据的Caml查询,sharepoint-2013,caml,Sharepoint 2013,Caml,我想从sharepoint列表中获取最近30天的项目 我迄今为止的努力 SPQuery dataColQuery = new SPQuery(); dataColQuery.Query = "<Where>"+ "<And>"+

我想从sharepoint列表中获取最近30天的项目

我迄今为止的努力

                        SPQuery dataColQuery = new SPQuery();

                        dataColQuery.Query = "<Where>"+
                                                "<And>"+
                                                    "<Eq>"+
                                                        "<FieldRef Name='isAct' /><Value Type='Choice'>Yes</Value>"+
                                                    "</Eq>"+
                                                    "<Geq>"+
                                                        "<FieldRef Name='Created' /><Value Type='DateTime' IncludeTimeValue='FALSE'><Today Offset='-30' /></Value>"+
                                                    "</Geq>"+
                                                "</And>"+
                                              "</Where>"+
                        "<OrderBy><FieldRef Name='Created' Ascending='True' /></OrderBy><GroupBy Collapse='True'><FieldRef Name='Created' /></GroupBy>";

                        dataColQuery.ViewFields = "<FieldRef Name='Created' /><FieldRef Name='tckStat' />";
                        dataColQuery.ViewFieldsOnly = true;
                        tktData = tktList.GetItems(dataColQuery).GetDataTable();
SPQuery dataColQuery=new SPQuery();
dataColQuery.Query=“”+
""+
""+
“是的”+
""+
""+
""+
""+
""+
""+
"";
dataColQuery.ViewFields=“”;
dataColQuery.ViewFieldsOnly=true;
tktData=tktList.GetItems(dataColQuery.GetDataTable();
但每次查询运行时,我都会得到null值。 我确信数据存在于我希望获取数据的范围内

请帮忙。
谢谢

我用了另一种方法后,它开始工作了。遵循下面的代码

DateTime lstNDaysDate = DateTime.UtcNow.AddDays(-30);
DateTime curntDt = DateTime.Now;

if (oWeb.CurrentUser.RegionalSettings != null)
                        {
                            nedt = Convert.ToDateTime(oWeb.CurrentUser.RegionalSettings.TimeZone.UTCToLocalTime(lstNDaysDate)).Date.ToString("yyyy-MM-dd");
                            curDt = Convert.ToDateTime(oWeb.CurrentUser.RegionalSettings.TimeZone.UTCToLocalTime(curntDt)).Date.ToString("yyyy-MM-dd");
                        }
                        else
                        {
                            nedt = Convert.ToDateTime(oWeb.RegionalSettings.TimeZone.UTCToLocalTime(lstNDaysDate)).Date.ToString("yyyy-MM-dd");
                            curDt = Convert.ToDateTime(oWeb.RegionalSettings.TimeZone.UTCToLocalTime(curntDt)).Date.ToString("yyyy-MM-dd");
                        }

SPQuery dataColQuery = new SPQuery();
dataColQuery.Query = "<Where><And><Eq><FieldRef Name='isAct' /><Value Type='Choice'>Yes</Value></Eq><And><Geq><FieldRef Name='Created' /><Value Type='DateTime' >" + nedt + "</Value></Geq><Leq><FieldRef Name='Created' /><Value   Type='DateTime' >" + curDt + "</Value></Leq></And></And></Where>";
DateTime-lstNDaysDate=DateTime.UtcNow.AddDays(-30);
DateTime curntDt=DateTime.Now;
if(oWeb.CurrentUser.RegionalSettings!=null)
{
nedt=Convert.ToDateTime(oWeb.CurrentUser.RegionalSettings.TimeZone.UTCToLocalTime(lstdaysDate)).Date.ToString(“yyyy-MM-dd”);
curDt=Convert.ToDateTime(oWeb.CurrentUser.RegionalSettings.TimeZone.UTCToLocalTime(curntDt)).Date.ToString(“yyyy-MM-dd”);
}
其他的
{
nedt=Convert.ToDateTime(oWeb.RegionalSettings.TimeZone.UTCToLocalTime(lstdaysdate)).Date.ToString(“yyyy-MM-dd”);
curDt=Convert.ToDateTime(oWeb.RegionalSettings.TimeZone.UTCToLocalTime(curntDt)).Date.ToString(“yyyy-MM-dd”);
}
SPQuery dataColQuery=新建SPQuery();
dataColQuery.Query=“是”+nedt+“”+curDt+“”;
它就像一个符咒。

将“Offset”改为“OffsetDays”

例如:


我建议将orderby和groupby xml放在子句前面。如果使用文件夹,请尝试添加:SPQuery.ViewAttributes=“Scope='RecursiveAll'”;