【问题标题】:Calculate time difference between two dates SQL 2012 - Format/Convert as TIME for SSRS计算两个日期之间的时间差 SQL 2012 - SSRS 的格式/转换为时间
【发布时间】:2016-11-02 00:44:58
【问题描述】:

我希望有人可以提供帮助。我已经阅读了关于这个主题的几个问题/答案,并且已经能够复制一些解决方案,但是我正在努力将我的输出格式化为时间格式,以便我可以在 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。有没有办法将其转换为时间字段?

【问题讨论】:

    标签: sql-server reporting-services time ssrs-2012


    【解决方案1】:

    在 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

    如果这有帮助,请告诉我。

    【讨论】:

    • Brill 这对我有用!我会试一试并尽快投票! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-25
    • 2011-08-01
    • 1970-01-01
    • 2022-01-17
    • 2010-09-17
    • 2021-10-09
    相关资源
    最近更新 更多