2017-01-31 2 views
1

Ich habe Zeit in einem varchar Feld, die Inhalte wie die folgenden hat 0,80, 0,94, 4,07 Ich möchte zum Beispiel 0.48 statt 0,80 diesmal in Minuten zeigen, was ist die Formel, die ich verwenden würde, um die Zeit zu übersetzen?SQL Zeit in 1/100-Format

+1

Was ist das RDBMS? –

+0

Sorry Microsoft Sql –

+0

'00: '+ Besetzung (Runde (cast (Wert als Dezimal (6,2) * 60 * 100,0)) als varchar (2)) – KeithL

Antwort

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 

Wenn nicht 2012+, versuchen

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

Returns

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

Das funktioniert :) - die nicht 2012 Teil Jede Chance, ich könnte eine kleine Erklärung bekommen, was es tut, insbesondere der DateAdd Teil, ich bekomme den Multiplikationsteil aber was ist der SS nochmal? –

+0

@MatthewJakachira Glücklich es half. Format() wurde in SQL 2012 eingeführt. Also, wenn 2008 und vorher, konvertieren wir die Datetime in eine Varchar (8) mit dem Conversion-Typ von 108 –