2017-01-31 108 views
1

我有时间在具有类似下面 0.80,0.94,4.07 我想表明这段时间以分钟为单位,例如 00:48,而不是0.80 什么是内容的varchar字段我会用公式来翻译时间?SQL时间1/100格式

+1

的RDBMS是什么? –

+0

对不起微软SQL –

+0

'00:'+ cast(round(cast作为十进制值(6,2)* 60 * 100,0))作为varchar(2)) – KeithL

回答

2
Declare @YourTable table (col varchar(25)) 
Insert Into @YourTable values 
('0.80'),('0.94'),('4.07') 

Select * 
     ,Formatted = Format(DateAdd(SS,60*cast(col as float),0),'mm:ss') 
from @YourTable 

如果不是2012+,尝试

,Formated = convert(varchar(8),DateAdd(SS,60*cast(col as float),0),108) 

返回

col  Formated 
0.80 00:48 
0.94 00:56 
4.07 04:04 
+0

工作:) - 非2012部分 任何机会,我可以得到一些有关它做什么的具体解释,特别是DateAdd部分,我会得到乘法部分,但什么是SS再次? –

+0

@MatthewJakachira对此感到满意。 Format()是在SQL 2012中引入的。因此,如果在2008年和之前,我们使用转换类型108将日期时间转换为varchar(8) –