在参数内将日期转换为整数

时间:2014-02-14 14:38:46

标签: sql-server stored-procedures reporting-services ssrs-2008

现在我有一个存储过程,其日期为integer(140213),但在SSRS内我需要将date parameter内选定的日期转换为{{1}之前提到的。

现在我试图通过2个参数(日期和转换)来实现这一目标,一个允许您选择日期,第二个尝试将日期转换为int。在默认值的第二个参数中,我有:

integer

第二个参数设置为internal,数据类型设置为integer。

当我尝试运行此报告时,我收到错误

=FormatNumber(Format(Parameters!date.Value, "yyMMdd"),0)

有关如何实现这一目标的任何想法吗?

1 个答案:

答案 0 :(得分:4)

最佳解决方案是修改存储过程以接受日期/日期时间参数。 这可以防止不必要的转换,并将单个数字年份的日期表示混淆为整数类型(例如2009-01-01 - > 90101

假设您无法控制存储过程定义,您仍然可以使用以下步骤实现所需。假设存在两个参数:

  • 日期(来自SSRS日期控制的用户输入)
  • ConvertedDate (表示已转换日期值的整数)

步骤

  1. ConvertedDate 数据类型设置为整数参数可见性设置为内部 Internal parameter visibility

  2. 使用表达式将ConvertedDate 默认值设置为指定值

    =CInt(Format(Parameters!Date.Value, "yyMMdd"))

    Parameter default value expression

  3. 现在可以将
  4. ConvertedDate参数值传递给存储过程。具有Date选择和ConvertedDate值的示例报表输出:

    Sample report