Я хочу запросить RTC с измененной датой. Мой запрос состоит в том, чтобы проверить, что измененная дата совпадает с заданной датой и временем, но ответ, который я получаю, основан на заданной дате и игнорирует время.
Ответ:
Дата запроса: 07.08.2015 15:44:09
Идентификатор: 2583 Дата изменения: 2015-08-07 14:43:19.157
Идентификатор: 2582 Дата изменения: 2015-08-07 14:43:19.419
В идеале обе записи не должны быть получены в ответ, так как это происходит раньше заданного времени.
Ниже мой код:
IQueryableAttributeFactory factory = QueryableAttributes.getFactory( IWorkItem.ITEM_TYPE );
IQueryableAttribute recAttr1 = factory.findAttribute(projectArea, IItem.MODIFIED_PROPERTY, auditableClient, null );
IQueryableAttribute recAttr2 = factory.findAttribute(projectArea, IWorkItem.TYPE_PROPERTY, auditableClient, null );
Date date = new Date();
date.setDate(date.getDate()-6);
DateFormat df = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
String reportDate = df.format(date);
System.out.println("Date: "+reportDate);
Timestamp timeStamp = new Timestamp(date.getTime());
AttributeExpression recExpr1 = new AttributeExpression(recAttr1, AttributeOperation.EQUALS, timeStamp );
Term term= new Term(Operator.AND);
term.add(recExpr1);
IQueryClient queryClient = (IQueryClient) teamRepository.getClientLibrary(IQueryClient.class);
IQueryResult<IResolvedResult<IWorkItem>> result = queryClient.getResolvedExpressionResults(projectArea, (Expression)term, IWorkItem.FULL_PROFILE);
System.out.println("This is total number: "+result.getResultSize(monitor).getTotal()+"\n");
while(result.hasNext(null)){
IResolvedResult<IWorkItem> resolvedWorkItem = result.next(null);
IWorkItem workItem = resolvedWorkItem.getItem();
Date date1 = resolvedWorkItem.getItem().modified();
System.out.println("Id: "+workItem.getId());
System.out.println("Modified date :"+date1.toString()+"\n");
}
Могу ли я получить результат не только по дате, но и по времени?
Я твердо уверен, что внутренняя логика RTC полностью игнорирует время и запрашивает базу данных только на основе даты.