Float 型の TimeSpent という列があります。
値が含まれています (つまり、 2.50、1.25、3.75、5.60 )
これらの時間の値を (2:30、1:15、3:45、5:36) などの適切な時間の値に変換する必要があります)
これはどのように行うことができますか?
Float 型の TimeSpent という列があります。
値が含まれています (つまり、 2.50、1.25、3.75、5.60 )
これらの時間の値を (2:30、1:15、3:45、5:36) などの適切な時間の値に変換する必要があります)
これはどのように行うことができますか?
これを試してQuery
select
time_decimal
,cast(cast(cast(time_decimal as int) as varchar)+
':'+cast(cast((time_decimal - cast(time_decimal as int)) * 60 as int) as varchar)+
':'+cast(cast(((time_decimal - cast(time_decimal as int)) * 60-
cast((time_decimal - cast(time_decimal as int)) * 60 as int)) * 60 as int) as varchar) as time) as real_time
from time1
データ型が time の列をすでに作成していると仮定すると、TimeSpent の左側をドットまで連結し、ドットの右側を 60 倍してテーブルを更新します。
SQL サーバー 2012:
UPDATE yourTable SET
newTimeColumn = CONCAT(CAST(TimeSpentFloat AS INT), ':', (TimeSpentFloat - CAST(TimeSpentFloat AS INT)) * 60);
SQL Server 2008 以前:
SELECT
CAST(CAST(2.75 AS INT) AS CHAR) + ':' + CAST((2.75 - CAST(2.75 AS INT)) * 60 AS CHAR);
sqlfiddleで動作することを確認してください。