搜索给定的范围之间的日期 - 莲花(Search for a date between given

2019-10-20 12:14发布

我一直在试图找出什么是搜索收集所有的文件中有一个特定的日期数据库的最佳方式。

本来我是想用FTsearch或通过搜索文档集合移动,但是后来改到处理过程的示意图及相关文件。

我的第一个问题是什么是通过一组文档旋转并寻找是否存储在文件的日期超过指定日期大于或小于最简单的方法?

因此,要继续工作,我实现下面的代码。

If (doc.creationDate(0) > cdat(parm1)) 
  And (doc.creationDate(0) < CDat(parm2)) then
  ...
end if

但结果是关闭

Included! Date:3/12/10 11:07:08 P1:3/1/10 P2: 3/5/10
Included! Date:3/13/10 9:15:09 P1:3/1/10 P2: 3/5/10
Included! Date:3/17/10 16:22:07P1:3/1/10 P2: 3/5/10

你可以看到存储在文档的日期不P1和P2之间。 但! 它限制与日期小于P1正确的文件。 所以,我不会与一个日期文档的结果比10年3月1日少

如果没有更好的办法比的if语句,有人可以帮助我了解为什么包括来自上面两个例子?

Answer 1:

你好你可以尝试这样的事:

searchStr = {(Form = "yourForm" & ((@Created > [} & parm1 & {]) & (@Created < [} & parm2 & {])))}

Set docCollection = currentDB.Search(searchStr, Nothing, 0)

If(docCollection.Count > 0)Then
    'do your stuff with the collection returned
End If


Answer 2:

卡洛斯的反应是相当不错的。

如果你有很多的文件,你也可以使用全文搜索这将是快得多。 该方法的调用非常相似(db.ftsearch(),在线帮助可以发现这里 )。

标准DB搜索方法相同的方式,视图索引的更新工作,所以它可以得到一个有点慢,如果你有成千上万的文件进行搜索。

只要确保你能在数据库属性数据库的全文索引,(最后一个标签)。

这种方法的语法很相似, 这个链接提供FTsearch一个很好的参考。 利用卡洛斯的语法,可以替代FTSearch和字符串searchstr分配更快的搜索。



文章来源: Search for a date between given ranges - Lotus