我遇到SSRS问题,当通过URL字符串将DD / MM / YY值发布到参数中时,它决定将Day值读取为Year,将Month作为月份读取,但Year将进入Day值,例如:
我正在通过ERP系统输入30/08/17的日期,然后生成一个字符串作为生成报告的URL,这个日期值应该进入名为fiAsOfDate的参数,即日期/时间数据类型,但此时它在参数列表中读取值为08/17/1930,即使URL保持在30/08/17。
这是在处理Query之前发生的,然后fiAsOfDate参数被格式化为MMDDYYYY以在Query中处理,但问题是当参数将值从URL加载到参数值时,我希望有人能帮助我吗?
我还应该补充一点,这个原始日期来自一个ERP系统,它将具有基于区域的日期格式,因为它在国际上使用,所以我不能将自己局限于一种输入格式,它应该使用区域设置,匹配它所基于的报告服务器的那个。
亲切的问候, James W. Acklam。
答案 0 :(得分:0)
要避免区域设置问题,您可以将日期更改为已知的整数或字符串格式:我使用CONVERT(NVARCHAR,YourDate,112)来获取字符串'20170830'。区域设置不会将其识别为日期,因此不会将其自动解析为MM / DD / YYYY或DD / MM / YYYY。当然,您需要自己解析,以便在报告中使用它,但至少您知道格式。
答案 1 :(得分:0)
这个问题归结于我自己的误解,即我从中提取数据的DataSource仅以DMY格式工作。将日期从参数格式转换为DMY格式,并通过DataSet的查询进行处理即可解决该问题。