4

我正在研究 tfs 工作项。我正在尝试使用查询获取工作项集合,但出现以下错误。请帮帮我吗?

[System.ChangedDate] > '4/19/06 1:00 PM' 返回以下错误“在使用日期精度运行查询时,您无法提供带日期的时间。错误是由 «[System.ChangedDate] > '4/19/06 下午 1:00'»。” 然而这个字段是日期时间精度的。关于为什么会发生这种情况的任何建议或答案?

var myquery= " SELECT [System.Id]" +
        " FROM WorkItems " +
    " WHERE " +
    " [System.TeamProject] = '" + ivSettings.Project + "'" + 
        " AND [System.ChangedDate] = '" + ivSettings.LastSyncGen + "'" + " " +
    " ORDER BY [System.Id]"

                 , null,false);
    Query qry = new Query(myworkitemstore, myquery, mycontext, false);

    ICancelableAsyncResult car = qry.BeginQuery();
      WorkItemCollection items = qry.EndQuery(car);

以上是我的代码。

提前致谢

4

4 回答 4

4

您确定以下行是您正在使用的:

    Query qry = new Query(myworkitemstore, myquery, mycontext, false);

当最后一个参数设置为 false 时,您不应收到此错误。仅当您将该参数设置为 true 或根本不提供该参数时,才会出现该错误。默认值为真。

参考: http ://teamfoundation.blogspot.com/2008/01/specifying-date-and-time-in-wiql.html

于 2014-01-20T15:08:59.933 回答
0

我在尝试查询最新更新时遇到了同样的问题,并通过执行以下操作来解决它

// defined elsewhere
private DateTime lastUpdated;


string consult = "select * from WorkItem where [Created Date] > ' "  + lastUpdated.ToString("MM/dd/yy") + 
                    "' AND [Work Item Type] = 'Test Case'";

IEnumerable<ITestCase> tcc = testManagementTeamProject.TestCases.Query(consult).Where(tp => tp.DateCreated > lastUpdated);

我为检索测试结果做了非常相似的事情

于 2013-10-23T20:08:53.550 回答
0

只是一个建议-您是否尝试过在 TFS API 中执行此查询

var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://localhost:8088/tfs")); 
    tfs.EnsureAuthenticated(); 
    var workItemStore = tfs.GetService<WorkItemStore>();
    var query = string.Format(@"     Select [Id], [Work Item Type], [Title], [State], [System.ChangedDate] From WorkItems", title);
    List<WorkItem> workItems = workItemStore.Query(query)

然后对 System.Changed Date 进行 LINQ 查询...

我没试过,但可以吗?

于 2012-12-11T08:56:47.707 回答
0

我遇到了同样的问题,Ravianth 的解决方案对我有用。问题可能出在日期格式上。在我的情况下,将日期转换为“yyyy-MM-dd HH:mm:ss”格式是有效的。

于 2016-07-27T20:18:23.390 回答