Reporting services @DateFrom的当月第1天边界值的滚动报告参数
我对运行每日报告的@datefrom参数的边界值有一个问题 这是我已经做了多少,但是返回了一个错误 DateFrom =IIF(DatePart(“d”,1,0,0),(DateAdd(“m”),1,DateSerial(年(现在),月(现在),1)),(DateSerial(年(现在),月(现在),1))) 错误消息 参数“DateValue”无法转换为类型“Date” 该表达式旨在允许边界日期从一个月的最后一天更改为下一个月的第一天 任何帮助都将不胜感激。Reporting services @DateFrom的当月第1天边界值的滚动报告参数,reporting-services,Reporting Services,我对运行每日报告的@datefrom参数的边界值有一个问题 这是我已经做了多少,但是返回了一个错误 DateFrom =IIF(DatePart(“d”,1,0,0),(DateAdd(“m”),1,DateSerial(年(现在),月(现在),1)),(DateSerial(年(现在),月(现在),1))) 错误消息 参数“DateValue”无法转换为类型“Date” 该表达式旨在允许边界日期从一个月的最后一天更改为下一个月的第一天 任何帮助都将不胜感激。 提前感谢。假设您只想在表达式中返回
提前感谢。假设您只想在表达式中返回一个日期,您可以使用:
=IIf(DatePart("d", Today, 0, 0) = 1
, DateAdd("m", -1, Today)
, DateSerial(Year(Today), Month(Today), 1))
对于今天(即2014年7月2日),它将返回日期2014年7月1日,但在昨天运行它(即2014年7月1日),您将得到2014年6月1日
您现有的表达式似乎存在一些语法问题-您需要将DatePart
表达式的结果与IIf
表达式的第一个子句中的实际整数进行比较;它在第一个子句中需要一个布尔值
此外,由于您仅使用DatePart
获取日期,因此可以使用较少的参数:
=IIf(DatePart("d", Today) = 1
, DateAdd("m", -1, Today)
, DateSerial(Year(Today), Month(Today), 1))
因此,给定一些日期,例如,
2014年6月30日
,2014年7月1日
,2014年7月2日
,您希望从表达式中得到什么值?6月30日将返回1-29日,7月1日将返回1-30日,2日仅返回1-1日。您正在寻找一个返回的日期吗?如果是,是否还需要DateTo
参数/表达式?或者您是在根据您的评论专门寻找一个组合两个日期的字符串?我发现简单表达式“DateAdd(“d”,-1,Today)”返回正确的值。这只是我与之有争议的日期。表达式“DateSerial(Year(Now)、Month(Now)、1)”可以工作,但当月份从30号更改为1号时,它失败了。在30号,它返回了1-29号,1号什么也没有返回。这太棒了,伊恩。再次感谢你的帮助。