对于仅接受的DATEADD来说太大了int
。 将其分为两部分:秒,然后是毫秒。
SELECT CONVERT(TIME,
DATEADD(ms, SUM(duration/10000 % 1000),
DATEADD(ss, SUM(duration/10000000), 0)))
FROM tblMediaFileProperties
并且,如果您的总时长超过1天,则可以使用该时间分别获取天数和hr:min:sec:ms。如果您实际上想要文本形式的结果,则是强制转换和字符串连接的问题。
declare @duration bigint
set @duration = 1230000000
SELECT @duration/10000/1000/60/60/24 DAYS,
CONVERT(TIME,
DATEADD(ms, SUM(@duration/10000 % 1000),
DATEADD(ss, SUM(@duration/10000000), 0))) HR_MIN_SEC