SSRS DateTime参数默认值:Today()与Now()表达式报错问题
报表Date/Time参数默认值表达式类型错误解决方法
问题原因
你原来的表达式中,FormatDateTime()函数返回的是字符串类型,而你的参数是Date/Time类型。使用Today()时报表引擎可能自动做了隐式类型转换,换成Now()后转换失效,导致「不符合预期类型」错误。
正确表达式
直接操作日期类型值,避免字符串转换,以下两种写法都可行:
写法一:保留原逻辑结构
=IIf(Hour(Now()) < 1, DateAdd("d", -1, DateValue(Now())), DateValue(Now()))
写法二:简化逻辑
=DateAdd("d", IIf(Hour(Now()) < 1, -1, 0), DateValue(Now()))
说明
DateValue(Now())提取当前时间的日期部分(去除时间),返回标准Date类型,和参数类型完全匹配- 两个分支均返回Date类型,不会出现类型不匹配问题
- 逻辑保持需求:当前时间在0点-1点之间时,默认值为前一天日期;其余时间为当天日期
内容的提问来源于stack exchange,提问作者Juls
相关产品推荐
相关产品推荐

