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是列名-编辑为用作子查询。