SQL Server 2008 конвертировать с плавающей точкой во время

Не могли бы вы помочь мне с преобразованием поплавка во время?
У меня есть значения (количество часов), которые выглядят так:

[- 104.59 / -104:35:00],  [0.25 / 00:15:00],  [5,84  /05:50:00]

Я не могу найти решение, потому что по схожим вопросам не было случаев со значениями "+" и "-".

1 ответ

with cte as (select * from (values ('-104.59'), ('0.25'), ('5,84')) t(val))
select val, concat(iif(charindex(':',result)>3,'','0'), result) result
from 
  cte
  cross apply (select replace(val, ',', '.') rp) t
  cross apply (select charindex('.', rp) ind) t1
  cross apply (select concat(substring(rp, 1, ind-1), ':', cast(substring(rp, ind+1, len(rp)) as int)*60/100, ':00') result) t2
Другие вопросы по тегам