1

10 進数の時間があり、時間に変換できません。

DECLARE @hours decimal(5,3) 
SELECT @hours = 20.30 //20 Hrs and 30 mins  

以下の形式で出力が必要です

 Hours  20.5 AS Time (data type)

以下は私のコードです

  select cast(hours /24 as datetime) 

このコードの出力は 20.18 時間です。ただし、20.5時間が必要です

4

1 に答える 1

2

小数部分は実際には時間の小数部分を表していないため、切り捨てて個別に処理する必要があります。

SQL Server 2012 の場合:

select TIMEFROMPARTS ( floor(hours), 100*(hours - floor(hours)), 0, 0, 0 )

SQL 2012 より前:

select cast(cast(floor(hours) as char(2))+':'+cast(floor(100*(hours - floor(hours))) as char(2)) as time)
于 2012-07-30T04:21:22.180 に答える