使用日期精度运行查询时,您无法提供日期

时间:2012-12-11 08:29:10

标签: c# sql tfs

我正在研究tfs workitem。我试图使用查询获取工作项集合,我收到以下错误。请帮帮我吗?

[System.ChangedDate]> '4/19/06 1:00 PM'返回以下错误“使用日期精度运行查询时,您无法提供日期。错误是由«[System.ChangedDate]>'4/19引起的/ 06 1:00 PM'»。“但该字段具有DateTime精度。对此为何发生的任何建议或答案?

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 个答案:

答案 0 :(得分:2)

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

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

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

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

答案 1 :(得分: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查询...

我没有尝试过,但这可行吗?

答案 2 :(得分: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);

我做了一些非常类似的检索测试结果

答案 3 :(得分:0)

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

相关问题