我不是开发人员,所以请原谅我的问题。我更喜欢产品 DBA
我们有一个 SSRS 页面,它显示长时间运行的 SQL 查询并显示经过的时间。但是我们需要一种显示持续时间的方法,例如 dd:hh:mm:ss:ms
因此我从这里的链接获得了函数,代码如下
--get the difference between two datetimes in the format: 'hh:mm:ss'
CREATE FUNCTION getDateDiff(@startDate DATETIME, @endDate DATETIME)
RETURNS VARCHAR(10)
AS BEGIN
DECLARE @seconds INT = DATEDIFF(s, @startDate, @endDate)
DECLARE @difference VARCHAR(10) =
FORMAT(@seconds / 3600, '00') + ':' +
FORMAT(@seconds % 3600 / 60, '00') + ':' +
FORMAT(@seconds % 60, '00')
RETURN @difference
END
但是如果我也需要天和毫秒,就不能让它工作。
我如何使用上面显示 dd:hh:mm:ss:ms 或以这种格式返回数据?我们必须确保它适用于 SQL2012 和 +
如果那里有更好的代码,请指导我,因为我是 SQL 开发部分的新手,谢谢
编辑-在评论中提到的几秒钟内获得 -ve 值
通过第二次编辑,我现在看到了一天的问题:
请看下面
开始时间“5/21/2021 8:00:23 PM”(东部时间)和结束日期“5/22/2021 01:09:0 6 AM”
它返回给我 1 5:9:17.13 这是不正确的,因为不应该是 1 天和 5 小时,而应该是 5 小时,所以当天出了点问题