2012-03-01 31 views
2

我有一個表格,其持續時間作爲包含分鐘總和的列,我想將所有持續時間轉換爲HH:MM格式。
分鐘通過更新查詢轉換爲HH:MM格式

ECode  Duration 
101   186 
102   1446 
103   1116 

輸出應該是這樣的:

ECode  Duration 
101   3.06 
102   24.06 
103   18.36 

我想用一個更新語句來做到這一點,要更新所有這樣的行。 尋找可能會削弱我的問題的查詢。提前感謝。

+0

的可能重複[十進制轉換爲HH:MM轉換](http://stackoverflow.com/questions/9513851/decimal-to-hhmm-conversion) – 2012-03-01 12:25:19

+1

你應該可以用你的其他問題給出的例子來解決它。如果沒有,發佈你已經嘗試過的東西以及你卡在哪裏。這開始看起來非常像*給我codez * – 2012-03-01 12:27:39

回答

1

也許是這樣的:

WITH CTE 
AS 
(
    SELECT 
     ECode, 
     CAST(Duration AS INT) AS Duration 
    FROM 
     YourTable 
) 
SELECT 
    SELECT CAST(Duration/ 60 AS VARCHAR(10)) + '.' 
    + RIGHT('0' + CAST(Duration % 60 AS VARCHAR(2)), 2) AS Duration 
FROM 
    CTE 
2

的一種方法如下:

SELECT ECode 
    CAST(Duration/ 60 AS VARCHAR(10)) + '.' 
    + RIGHT('0' + CAST(Duration % 60 AS VARCHAR(2)), 2) AS Duration 
FROM YourTable 
+0

我mGetting SQL Server 2008中的錯誤嘗試此查詢時,錯誤消息是「數據類型float和int在模運算符不兼容」。 – Dharmendra 2012-03-01 12:07:43

+0

@Dharmendra - 聽起來像你的持續時間欄是FLOAT呢?您可以嘗試在持續時間周圍應用CAST - 例如, 「CAST(Duration AS INT)」代替在我的例子中對「持續時間」的每個引用 – AdaTheDev 2012-03-01 12:28:27

相關問題