我的 sql server 数据库表中有一个数据类型为 bigint 的列。现在我需要将此列转换为 HH:MM:SS 格式。为此,我使用此命令
SELECT cast(CONVERT(VARCHAR,DATEADD(MS,SUM(mFld),0),8) as Time) FROM tblm
但是这个命令没有显示正确的持续时间。对于正确的持续时间,我使用此命令
SELECT rtrim(LTRIM(cast((mFld/(60*60)) as char)))+':' +rtrim(LTRIM(cast((mFld%(60*60))/(60)as char)))+':'+rtrim(LTRIM(cast(((mFld%(60*60))%(60)) as char))) FROM tblm
此命令显示正确的结果。但结果数据类型为 varchar。如何将此列转换为具有相同结果的时间列。
例子
DECLARE @minites bigint;
SET @minites = 5200020;
SELECT rtrim(LTRIM(cast((@minites/(60*60)) as char)))+':' +rtrim(LTRIM(cast((@minites%(60*60))/(60)as char)))+':'+rtrim(LTRIM(cast(((@minites%(60*60))%(60)) as char)))
SELECT cast(CONVERT(VARCHAR,DATEADD(MS,SUM(@minites),0),8) as Time)