2012-03-01 4 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 

私はUPDATEステートメントでそれをしたいと、このようなすべての行を更新します。 私の問題を解決する可能性のあるクエリを探しています。事前に感謝しています。次のように

+0

可能重複/ 9513851/decimal-to-hhmm-conversion) –

+1

あなたは、他の質問に示されている例を使って解決できるはずです。そうでない場合は、あなたが試したものとどこに行き詰まったものかを投稿してください。これは、非常に私のように見えるようになっています* codez * –

答えて

1

このような何か:[:MM変換HHに10進】(http://stackoverflow.com/questionsの

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

私はこのクエリを試して、SQL Server 2008のmGettingエラーとエラーメッセージは、 "浮動小数点型とint型の演算子では互換性のないデータ型です。 – Dharmendra

+0

@Dharmendra - Duration列のような音はFLOATですか? Durationの周りにCASTをINTに適用することができます。私の例では、 "Duration"への各参照の代わりに "CAST(Duration AS INT)" – AdaTheDev

関連する問題