我正在尝试从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的各种构造,但它没有结合在一起......
有什么建议吗?
答案 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”。