Datetime SQL Server 2008将int转换为dd:hh:mm

Datetime SQL Server 2008将int转换为dd:hh:mm,datetime,sql-server-2008-r2,int,Datetime,Sql Server 2008 R2,Int,如何将表示分钟的int值(即:1800)转换为如下所示的值:dd:hh:mm(days:hours:minutes) 因此,1800应转换为1:06:00(1天6小时0分钟) 在存储过程中,我有以下内容: SELECT Record_ID, Project_ID, Ticket_ID, WO_Type, DC, Title, Device_Quantity, Total/1440 as Total, ((Total - Elapsed) - DATEDIFF(mi

如何将表示分钟的
int
值(即:
1800
)转换为如下所示的值:
dd:hh:mm
days:hours:minutes

因此,
1800
应转换为
1:06:00
1天6小时0分钟

在存储过程中,我有以下内容:

SELECT 
    Record_ID, Project_ID, Ticket_ID, WO_Type, DC, Title, Device_Quantity, 
    Total/1440 as Total,  
    ((Total - Elapsed) - DATEDIFF(mi, Record_Time, getdate())) as FinalTimeLeft, 
    Completed 
FROM Record

如何在SP中实现强制转换?上面的
FinalTimeLeft=1800

这个例子怎么样-它有小时、分钟和秒,但应该很容易修改为天、小时和分钟:

SELECT 
  CAST(mins / 3600 AS VARCHAR) + ':' + 
  RIGHT('0' + CAST((mins % 3600) / 60  AS VARCHAR), 2) + ':' +
  RIGHT('0' + CAST(mins % 60 AS VARCHAR), 2)
FROM 
  (SELECT 1800 AS mins) a
编辑:包括您的存储过程,我的代码按天、小时和分钟进行了修改:

SELECT 
  *
  ,CAST(FinalTimeLeft / 1440 AS VARCHAR) + ':' +
     RIGHT('0' + CAST((FinalTimeLeft / 60) % 24 AS VARCHAR), 2) + ':' +
     RIGHT('0' + CAST(FinalTimeLeft % 60 AS VARCHAR), 2) AS duration
FROM ( 
SELECT 
  Record_ID
  ,Project_ID
  ,Ticket_ID
  ,WO_Type
  ,DC
  ,Title
  ,Device_Quantity
  ,Total/1440 as Total
  ,((Total-Elapsed)-DATEDIFF(mi,Record_Time,getdate())) as FinalTimeLeft
  ,Completed
FROM record) a

没关系,只是第二行应该是1440,而不是3600:)ThanksI用存储过程的详细信息更新了原始问题。如何将您的代码实现到该列中?工作正常,但它不知道FinalTimeLeft是什么,因为它不是表中的一列。因此,如果我将其替换为
((总运行时间)-DATEDIFF(mi,Record\u Time,getdate())
,它可以解析为ok,但看起来不太好。抱歉,FinalTimeLeft是列名-编辑为用作子查询。