我正在编写一份SSRS报告,其中包含几个参数,包括几个日期字段。我不希望用户能够在任一日期字段中输入时间信息,但SSRS只有日期/时间数据类型。有没有办法强制这些报表参数仅作为日期,我可以设置一个特定的格式(例如,dd / mm / yyyy)?我想保留内置的日期选择日历功能。
我不想编写自己的报告参数网页,因为如果我这样做,那么这一个报告将是奇怪的,因为我们所有其他报告(不使用日期参数)与内置SSRS一起工作正常参数输入功能。
也许答案是你不能用内置的选项做到这一点,但这看起来很疯狂 - 怎么可能忽略了这么明显的东西?
谷歌和Stackoverflow搜索我只是给了我在报告输出中设置格式的方法(实际上有很多情况下人们提出类似于我的问题,只收到有关设置输出格式的答案)。
问题是您正在使用获取时间戳信息的参数。
例如,如果您在表达式中使用Now(),则会询问当前日期和当前时间。但是,如果您使用Today() - 您将只询问当前日期。
=今天()'仅返回日期
= Now()'返回日期和当前时间戳
有用的参考:
http://msdn.microsoft.com/en-us/library/ms157328(v=sql.90).aspx
为了回答我自己提出的问题以来我自己提出的问题:似乎无法控制SSRS如何处理参数中日期/时间值的用户输入。如果需要仅限制日期(或时间)或进行跨领域验证,那么您需要实现自己的前端 - 不幸的是,对于我的特定业务案例没有帮助。
根据我的经验,它只给了我你选择的文件包含日期和时间的日期和时间。我发现如果我选择仅限日期字段,那么我只在参数中获取日期
有一种方法,但它会要求你在参数数据集中CAST
你的日期为Varchar(10)
。
接下来,你必须在"Data Type:" as Text
部分选择Parameters
。
同样,您必须确保您的SQL代码再次将其重新转换为日期。我不喜欢这种方式,但用户真的希望没有时间看日期。
如果你想要截图或更多细节,请告诉我。