2012-07-30 77 views
1

我有小數時間,我無法轉換爲時間。如何將小數時間轉換爲SQL Server 2008中的時間

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小時

回答

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) 
+0

這裏是一個[鏈接](http://sqlfiddle.com/#!3/86716/1)到sqlfiddle樣本。 – dasblinkenlight 2012-07-30 04:39:41

相關問題