代码之家  ›  专栏  ›  技术社区  ›  Finn

如何在CMIS查询中使用OR?

  •  0
  • Finn  · 技术社区  · 11 年前

    我正在编写一个查询,根据创建日期或上次修改日期提供结果

    SELECT*FROM cmis:document where cmis:createdBy NOT like“%System%”AND cmis:contentStreamLength>0 AND(cmis:creationDate>‘2014-03-12T18:19:48+0530’AND cmis:createDate<‘2014-03.12T18:32:48+0530’)AND(cmis:lastModificationDate>,‘2014-03-12 T18:19:48+0530’AND cmis:lastModificationDate<’2014-03-12T1 8:32:48+0530’)

    根据我的需要,我想根据cmis:creationDate或cmis:lastModificationDate进行检查,这似乎是合乎逻辑的,但当我尝试使用查询时

    SELECT*FROM cmis:document where cmis:createdBy NOT like“%System%”AND cmis:contentStreamLength>0 AND(cmis:creationDate>‘2014-03-12T18:19:48+0530’AND cmis:createDate<‘2014-03.12T18:32:48+0530’)OR(cmis:lastModificationDate>,‘2014-03-12 T18:19:48+0530’AND cmis:lastModificationDate<,‘2014-03.12 T18:32:38+0530”)

    它抛出错误&不运行。

    我读到可能不可能这样使用OR谓词。知道我如何做到这一点吗?

    谢谢你的帮助。

    1 回复  |  直到 11 年前
        1
  •  0
  •   Finn    11 年前

    我能够使用下面的代码以所需的格式获得时间。

    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谓词获得查询。