2016-12-08 9 views
-5

テーブルには時刻が含まれているVARCHARの列があります。値ルック以下のように:Varcharを24時間で変換する方法 - SQL Server

TXN_TIME 
-------- 
053124 
173932 
011815 
120349 
134207 

私はVARCHARまたは実際のTIMEタイプとして、あなたの結果を望んでいない明確かどうか、それを

TXN_TIME 
-------- 
05:31:24:000000 
17:39:32:000000 
01:18:15:000000 
12:03:49:000000 
13:42:07:000000 

いくつかの例を教えてください ...

+1

使用「サブストレート」 – Ben

+4

***あなたは***これまでに試したことはありますか?あなたはどこにいるのですか? –

+1

サブストリングと連結を組み合わせたもの。 – jarlh

答えて

1

を変換する必要があり、両方ともここにあります:

DECLARE @Table TABLE (
    TXN_TIME VARCHAR(6) 
) 

INSERT INTO @Table 
SELECT '053124' 
UNION 
SELECT '173932' 
UNION 
SELECT '011815' 
UNION 
SELECT '120349' 
UNION 
SELECT '134207' 

SELECT TXN_TIME, 
     LEFT(TXN_TIME,2) + ':' + SUBSTRING(TXN_TIME,3,2) + ':' + SUBSTRING(TXN_TIME,5,2) + ':000000' AS Converted, 
     CONVERT(TIME(6),LEFT(TXN_TIME,2) + ':' + SUBSTRING(TXN_TIME,3,2) + ':' + SUBSTRING(TXN_TIME,5,2)) AS ConvertedTime 
FROM @Table 

結果:

/----------------------------------------------\ 
| TXN_TIME | Converted | ConvertedTime | 
|----------+-----------------+-----------------| 
| 011815 | 01:18:15:000000 | 01:18:15.000000 | 
| 053124 | 05:31:24:000000 | 05:31:24.000000 | 
| 120349 | 12:03:49:000000 | 12:03:49.000000 | 
| 134207 | 13:42:07:000000 | 13:42:07.000000 | 
| 173932 | 17:39:32:000000 | 17:39:32.000000 | 
\----------------------------------------------/ 
関連する問題