2017-01-31 1 views
1

J'ai le temps dans un champ varchar qui a un contenu comme les suivants 0,80, 0,94, 4,07 Je veux montrer cette fois en quelques minutes par exemple 00h48 au lieu de 0,80 Qu'est-ce la formule que j'utiliserais pour traduire l'heure?SQL en 1/100ème Format

+1

Quel est le SGBDR? –

+0

Désolé Microsoft Sql –

+0

'00: '+ cast (rond (la valeur comme décimale (6,2) * 60 * 100,0)) comme varchar (2)) – KeithL

Répondre

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 

Si Non 2012+, essayez

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

Retours

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

Cela fonctionne :) - la partie non 2012 Toute chance que je puisse avoir une petite explication sur ce qu'il fait, en particulier la partie DateAdd, je reçois la partie multiplicateur mais qu'est-ce que le SS à nouveau? –

+0

@MatthewJakachira Heureux que cela a aidé. Format() a été introduit dans SQL 2012. Donc, si 2008 et avant, nous convertissons le datetime en un varchar (8) en utilisant le type de conversion de 108 –