搜索给定范围之间的日期 - Lotus

Posted

技术标签:

【中文标题】搜索给定范围之间的日期 - Lotus【英文标题】:Search for a date between given ranges - Lotus 【发布时间】:2010-03-19 18:07:16 【问题描述】:

我一直在尝试找出最好的方法来搜索收集数据库中具有特定日期的所有文档。

最初我尝试使用 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 的文档。所以我不会得到日期小于 3/1/10 的文档的结果

如果没有比 if 语句更好的方法,有人可以帮我理解为什么包含上面的两个示例吗?

【问题讨论】:

【参考方案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

【讨论】:

我尝试了搜索和 FTsearch,但我缺少的部分是日期周围的 []。谢谢!【参考方案2】:

Carlos 的反应非常好。

如果您有很多文档,您还可以使用全文搜索,这样会更快。方法调用很相似(db.ftsearch(),在线帮助可以找到here)。

标准的数据库搜索方法与视图索引更新的操作方式相同,因此如果您要搜索数千个文档,它可能会有点慢。

只需确保在数据库属性(最后一个选项卡)中为您的数据库启用全文索引。

这种方法的语法非常相似,this 链接为 FTsearch 提供了很好的参考。使用 Carlos 的语法,您可以替换 FTSearch 和 searchStr 分配以实现更快的搜索。

【讨论】:

链接是一个守门员。 +1 供参考。

以上是关于搜索给定范围之间的日期 - Lotus的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Moment JS 计算范围之间的给定工作日数?

使用未在 Mysql 中排序的多个日期范围查询给定月份的日期范围间隙

如何使用 snowsql 在给定日期范围内构造日期数组?

银条。在 ModelAdmin 中按日期范围搜索

日期时间范围之间的 Python Pandas 累积列

如何搜索与SQL两行之间寻找日期时间?