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“预览”中使用,但由于日期无法识别,所以会在部署中失败!有什么建议么??
每个报告都有其自己的本地化设置。在报告的“属性”面板中,您将在本地化部分看到一个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'
谢谢@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作为查询中的日期。真的有点麻烦!
我的理解是,参数面板中的日期格式是固定在那种可怕的美国格式,并且没有办法绕过它。 –