我希望有人可以提供帮助。我已经阅读了关于这个主题的几个问题/答案并且能够复制一些解决方案,但是我很难将我的输出格式化为时间格式,所以我可以在SSRS报告中聚合,我目前得到#Error。我已经设法使用下面的代码找到两个日期之间的时差,但是字段是VARCHAR,有没有办法转换时间或INT所以我可以格式化SSRS?
,CONVERT(VARCHAR(5),DATEDIFF (SECOND, FFP.[CreatedDate], FFP.[LastModifiedDate])/3600)+':'+
CONVERT(VARCHAR(5),DATEDIFF (SECOND, FFP.[CreatedDate], FFP.[LastModifiedDate])%3600/60)+':'+
CONVERT(VARCHAR(5),(DATEDIFF(SECOND, FFP.[CreatedDate], FFP.[LastModifiedDate])%60))+'.'+
CONVERT(VARCHAR(5),(DATEDIFF(SECOND, FFP.[CreatedDate], FFP.[LastModifiedDate])%1000)) AS [Test]
示例日期和输出CreatedDate = 2016-10-10 10:53:26.0829077 上次修改日期= 2016-10-10 11:06:09.2670000输出= 0:12:43.763。有没有办法将其转换为时间字段?
答案 0 :(得分:0)
在SSRS中,您可以使用CDate()
函数将日期字符串转换为日期时间对象。
例如:
=FORMAT(
DATEADD(
DateInterval.Second,
DATEDIFF(DateInterval.Second,CDATE("2016-10-10 10:53:26.0829077"),
CDATE("2016-10-10 11:06:09.2670000")
),
CDATE("00:00:00"))
,"HH:mm:ss")
在这种情况下,它会以秒为单位计算两个日期之间的差异,然后将该差异(以秒为单位)加到00:00:00
,最后格式化为HH:mm:ss
。
如果有帮助,请告诉我。