lotus notes用Java api按日期搜索

时间:2012-06-01 00:49:08

标签: java date lotus-notes

我正在尝试从Lotus Notes数据库中按日期选择记录,并且在正确格式化日期时遇到了麻烦。

以下是相关代码:

public void runNotes()  {
    Session s;
    try {
        s = NotesFactory.createSession((String)null, (String)null, "mypassword");
        Database hkDB = 
            s.getDatabase("NBHDH001/YNM", "H\\DHH00001.nsf", false);
        DocumentCollection docs = hkDB.search("[Date]>[2012/03/20]");

日期是记录中的一个字段,当我查找记录(使用FTSearch)时,日期以上述格式返回:[yyyy / mm / dd]。

搜索的参数是我需要的。 即我应该放什么,而不是“[日期]> [2012/03/20]”

我尝试了使用Calendar和DateFormat的各种构造,但它没有结合在一起......

有什么建议吗?

2 个答案:

答案 0 :(得分:4)

您应该删除字段名称上的方括号。搜索方法需要一个Notes公式,就像您将其放入视图选择公式中一样:

"Date > [03/20/2012]"

可能还需要日期采用mm / dd / yyyy格式,但如果您处于非美国语言环境中,我并非100%肯定。

答案 1 :(得分:3)

您提到您一直在数据库中进行全文搜索,因此绝对值得一提......如果数据库实际上有全文索引,那么您可能需要考虑使用NotesDatabase.FTSearch()方法而不是NotesDatabase.Search()。对于大型数据库,FTSearch方法会快得多。

FTSearch的语法与搜索的语法不同。您可以使用“FIELD Date> 03/20/2012”或“[Date]> 03/20/2012”。