如何在SQL Server中将分钟转换为HH:MM:SS格式

时间:2013-06-19 09:22:31

标签: datetime sql-server-2012

我的sql server数据库表中有一个数据类型为bigint的列。 现在我需要将此列转换为HH:MM:SS formate。 为此,我使用此命令

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)

1 个答案:

答案 0 :(得分:0)

  

如何将此列转换为具有相同结果的时间列。

你做不到。时间范围为00:00:00.000000023:59:59.9999999

time (Transact-SQL)