SSRS查询日期格式和参数日期格式不同?

问题描述:

BIDS/Visual Studio 2005中SSRS查询日期格式和参数日期格式不同?

嗨,我已经经历了这么一个问题看,并不能找到答案。我确定在那里肯定有一个人。

这看起来像一个简单的问题,但我已经尝试了一些变化,但无法找到解决方案!

简单数据集:“DATERANGE”给我一个日/月/年小时:MN:ss格式如

FromDate     ToDate 
2016-04-24 00:00:00.000 2016-04-25 23:59:59.997 

select (CAST(FLOOR(CAST(dateadd(d,-1,getdate()) AS FLOAT)) AS DATETIME)) AS 'FromDate', 
DATEADD(ms, -3, DATEADD(dd, DATEDIFF(dd, -1, getdate()), 0)) as 'ToDate' 

然后我使用FROM日期和todate如报告作为默认值的参数。然而,这些显示在参数字段中作为“mm/dd/yyyy hh:mn:ss”格式!

我的控制面板设置为英国英语。这可以在Visual Studio“预览”中使用,但由于日期无法识别,所以会在部署中失败!有什么建议么??

+0

我的理解是,参数面板中的日期格式是固定在那种可怕的美国格式,并且没有办法绕过它。 –

每个报告都有其自己的本地化设置。在报告的“属性”面板中,您将在本地化部分看到一个Language属性。您可以将其设置为en-GB这应该可以解决您的问题。但是,我通常将其设置为=User!Language以使用用户的区域设置。

编辑

由于不工作,让我们转换为军事日期格式(所有元素大小的降序 - 年,月,日,小时等)作为一个字符串,并让应用程序将其转换回日期。这种格式是周围路过的日期,以避免地区问题的最可靠的方法:

select CONVERT(VARCHAR(23), (CAST(FLOOR(CAST(dateadd(d,-1,getdate()) AS FLOAT)) AS DATETIME)), 121) AS 'FromDate', 
CONVERT(VARCHAR(23), DATEADD(ms, -3, DATEADD(dd, DATEDIFF(dd, -1, getdate()), 0)), 121) as 'ToDate' 
+0

谢谢@ChisLatta。我已经尝试将语言设置为英语,但这没有什么区别。我也尝试了'= User!Language'的建议,但是那里也没有运气! – MiguelH

唯一的解决办法,我能得到可用的上班时间是设置SSRS参数为一个字符串,该日期转换为字符串如下:

select distinct left(convert(varchar, (CAST(FLOOR(CAST(dateadd(d,-1,mydate) AS FLOAT)) AS DATETIME)),120),30) as FromDate, 
left(convert(varchar, DATEADD(ms, -3, DATEADD(dd, DATEDIFF(dd, -1, mydate), 0)),120),30) as ToDate 
from mydb 
order by fromdate desc 

参数然后CAST作为查询中的日期。真的有点麻烦!