我正在研究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);
以上是我的代码。
提前致谢
答案 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;格式有效。