2016-12-08 4 views
-5

В моей таблице есть столбец VARCHAR, который содержит время. Значение выглядеть, как показано ниже:Как конвертировать Varchar в 24hours Time - SQL Server

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

Мне нужно преобразовать его

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

Пожалуйста, дайте несколько примеров ..

+1

использование 'SUBSTRING' – Ben

+4

Что вы *** ВЫ ПРОДОЛЖНЫ до сих пор? Где вы застряли? –

+1

подстрока в сочетании с конкатенацией. – jarlh

ответ

1

хотите Не ясно ли вы свой результат как VARCHAR или фактический TIME типа, так что вот так:

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 | 
\----------------------------------------------/ 
Смежные вопросы