按日期的年值筛选视图

Filter View on Year value of Date

我认为到目前为止一切正常,但现在我需要添加一个列来显示文档的创建年份并进行过滤以仅显示 2011 年(2012 年以后)之后创建的文档。该视图是使用以下公式创建的;

SELECT ApplicationAcceptanceDate = ""

我试图过滤的列(创建年份)的格式为 dd/mm/yyyy hh:mm:ss 并且我使用 @Year 仅显示到目前为止有效的所有文档年份值。但是我如何使用@year 公式来过滤年份到 2012 年呢?这是视图的图像、它的字段和我到目前为止尝试过的公式。

CreatedOn 字段是文本字段还是日期时间字段?我的猜测是它是作为文本字段创建的。即使您现在在表单中更改它,任何现有文档仍会将值存储为文本。 需要将所有文档上的字段转为DateTime,要么写一个agent来做,要么用NoteMan之类的工具快速改字段类型。

您也可以使用 @Year(@TextToTime(CreatedOn)),或者(如果您在不同文档中有文本和日期时间字段)@Year(@TextToTime(@text(CreatedOn)))

使用@ToTime()将字段转换为日期时间值,无论它是作为字符串还是日期时间值存储在文档中。

将您的选择公式扩展到

SELECT ApplicationAcceptanceDate = "" & @Year(@ToTime(CreatedOn)) > 2011

在 "Created Year" 列中用公式

显示创建年份
@Year(@ToTime(CreatedOn))

请记住,您只能使用选择公式来过滤视图,而不能使用列公式。

或者,您可以使用@Created。它 returns 创建文档的日期时间。您的选择公式为

SELECT ApplicationAcceptanceDate = "" & @Year(@Created) > 2011

然后和列公式

@Year(@Created)

该图显示您正在编辑创建年份列的列公式。单击视图的白色 space 以确保您正在编辑视图选择公式。然后使用:

SELECT ApplicationAcceptanceDate = "" & @Year(CreatedOn) > 2011