【问题标题】:Get Year from a Parameter with a date function使用日期函数从参数中获取年份
【发布时间】:2013-05-01 14:29:41
【问题描述】:

我需要从带有

的参数 (@PrmEnd2) 获取年份 YYYY
default value  =
DateAdd("d" , -1 , DateAdd("m", -3, DateSerial(Year(Now()), Month(Now()), 1))) 

我尝试过 =Year(Parameters!PrmEnd2.Value),但不断收到 #ERR

请帮忙。谢谢你

【问题讨论】:

  • Parameters!PrmEnd2.Value 的值是多少?这是DateTime吗?
  • 是的,它是一个日期时间值
  • 我做了一个快速测试,你的所有代码对我来说都很好。如果您使用=Year(CDate(Parameters!PrmEnd2.Value)) 有什么不同吗?您是否在 Visual Studio 预览版中运行了报告并查看了它在输出中显示的错误?
  • 仍然出现错误。
  • 试试Today() 而不是Now()Now() 还包含一个时间组件...

标签: sql reporting-services parameters datepart


【解决方案1】:

您可以使用 DatePart 例如

=DatePart("yyyy",Paremeters!PrmEnd2.Value)

也可能是 DateSerial 以 Variant 格式导出数据。

【讨论】:

  • 对不起,丹,上来说 yyyy not delcared
  • 嗨,丹,未声明的问题是参数的拼写 - 但是,它仍然返回 #ERROR。该参数在调用时显示为日期时间。
【解决方案2】:

@PrmEnd2 的数据类型更改为 日期/时间。您应该得到Year(Parameters!PrmEnd2.Value) 的年份值。

或者

尝试将 @PrmEnd2 的数据类型设为文本,将表达式设为 Year(cdate(Parameters!PrmEnd2.Value))

或者

使用表达式Year(DateAdd("d" , -1 , DateAdd("m", -3, DateSerial(Year(Now()), Month(Now()), 1))))

【讨论】:

    【解决方案3】:

    有时问题出在您尝试将字符串与数字连接时...尝试将年份转换为字符串。

    例如:

    STR(年份(Now()))

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-24
      • 1970-01-01
      相关资源
      最近更新 更多