我正在编写一个查询,根据创建日期或上次修改日期提供结果
SELECT * FROM cmis:document其中cmis:createdBy不喜欢'%System%'和cmis:contentStreamLength> 0 AND(cmis:creationDate>'2014-03-12T18:19:48 + 0530'AND cmis:creationDate<'2014-03-12T18:32:48 + 0530')AND(cmis:lastModificationDate>'2014 -03-12T18:19:48 + 0530'AND cmis:lastModificationDate<'2014-03-12T18:32:48 + 0530')
根据我的需要,我想根据cmis检查:creationDate或cmis:lastModificationDate,这似乎是合乎逻辑的,但当我尝试使用查询时
SELECT * FROM cmis:document其中cmis:createdBy不喜欢'%System%'和cmis:contentStreamLength> 0 AND(cmis:creationDate>'2014-03-12T18:19:48 + 0530'AND cmis:creationDate<'2014-03-12T18:32:48 + 0530')OR(cmis:lastModificationDate>'2014 -03-12T18:19:48 + 0530'AND cmis:lastModificationDate<'2014-03-12T18:32:48 + 0530')
它会抛出错误&没有跑。
我读过它可能无法使用OR谓词。任何想法我怎么能实现这个?
感谢您的帮助。
答案 0 :(得分:0)
我可以使用以下代码获得所需格式的时间。
private static final SimpleDateFormat CMIS_DATE_FORMATTER = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ") {
@Override
public StringBuffer format(Date date, StringBuffer toAppendTo, java.text.FieldPosition pos) {
StringBuffer toFix = super.format(date, toAppendTo, pos);
return toFix.insert(toFix.length()-2, ':');
};
};
现在我可以使用OR谓词进行查询。