我有一个观点,到目前为止工作正常,但现在我需要添加一个列,显示文档创建的年份,并过滤为仅显示2011年之后创建的文档(2012年的病房)。使用公式
创建视图SELECT ApplicationAcceptanceDate =""
我试图过滤的栏目(创建年份)的格式为dd / mm / yyyy hh:mm:ss我正在使用@Year来显示目前为止所有文档年份值。但是,如何使用@year公式过滤到2012年的年份呢?这是一张视图的图像,它的字段和我到目前为止尝试过的公式。
答案 0 :(得分:3)
使用@ToTime()将字段转换为日期时间值,无论它是作为字符串存储在文档中还是日期时间值。
将您的选择公式扩展为
SELECT ApplicationAcceptanceDate = "" & @Year(@ToTime(CreatedOn)) > 2011
在列"创建年份"中显示创建年份用公式
@Year(@ToTime(CreatedOn))
请记住,您只能使用选择公式过滤视图,而不能使用列公式过滤视图。
或者,您可以使用@Created。它返回创建文档的日期时间。您的选择公式将是
SELECT ApplicationAcceptanceDate = "" & @Year(@Created) > 2011
然后和列公式
@Year(@Created)
答案 1 :(得分:0)
字段CreatedOn是文本字段还是DateTime字段?我的猜测是它是作为文本字段创建的。即使您现在在表单中更改它,任何现有文档仍将将值存储为文本。 您需要将所有文档上的字段转换为DateTime,编写代理来执行此操作或使用NoteMan等工具快速更改字段类型。
您还可以使用@Year(@TextToTime(CreatedOn))
或(如果您在不同文档中包含text和datetime字段)@Year(@TextToTime(@text(CreatedOn)))
答案 2 :(得分:0)
图像显示您正在编辑“创建年份”列的“列公式”。单击视图的空白区域以确保您正在编辑视图选择公式。然后使用:
SELECT ApplicationAcceptanceDate = "" & @Year(CreatedOn) > 2011