【发布时间】:2020-08-10 19:43:57
【问题描述】:
我正在尝试在报表生成器中显示“上周”的日期范围。例如,今天是 8/10。所以我需要显示类似:“August 02, 2020 to August 08, 2020”
如果我将以下表达式用作 SQL 查询的一部分,它就可以正常工作。但是,当我尝试将其用作报表生成器中文本框中的表达式时,会出现错误。
=format(DateAdd("week",-1,DateAdd("week",DateDiff("week",0,getdate()),0)), "MMMM dd, yyyy")
当我点击运行时会抛出一个错误,上面写着:
textrun 'Textbox14.Paragraphs[0].TextRuns[0]' 的值表达式包含错误:[BC30451] 'getdate' 未声明。由于其保护级别,它可能无法访问。
对于“week”关键字,我尝试使用双引号/单引号,不使用引号,仅使用带和不带引号/单引号的“w”。如果 "week" 或 "w" 没有被引用,错误提示 'week' is not declared...
但是,如果我运行以下选择查询,我会得到正确的日期:
SELECT format(DateAdd(week,-1,DateAdd(week,DateDiff(week,0,getdate()),0)) - 1, 'MMMM dd, yyyy')
, format(DateAdd(week,-1,DateAdd(week,DateDiff(week,0,getdate()),0)) + 5, 'MMMM dd, yyyy')
使用“-1”是因为第一个 DateAdd() 的结果返回前一个星期一。然后第二部分是“+5”来获取上一个星期六的日期。
最后,我尝试将“GetDate()”替换为“Now()”。当我这样做时,报告将运行。但是,文本框只显示 "#Error"。
有什么想法吗?
【问题讨论】:
标签: reportbuilder