2012-10-22 69 views
1

我有一个出口并导入文本文件的SQL服务器作业。此作业的一个行如下所示:转换为HH:MM:SS

SUBSTRING(Line, 61, 5) AS Col06, 

这是得到一个5位数数字(在呼叫的持续时间),并将其放入一个为nvarchar(50)字段。我想将其转换为HH:MM:SS

你能协助吗?我对这个很陌生,所以如此解释,好像我很愚蠢。

+3

好时间......以哪种方式?小时分数?秒?蜱? –

+0

@silentbob:为什么nvarchar(50)?为什么不将Royi的建议结果投射到TIME(0)并将其存储在更小的(每行3个字节与nvarchar的18个字节)以及更合适的字段中?这对于搜索索引和进行时间数学计算也会更便宜。 – brian

回答

1

你可以试试这个: -

,其中1000秒

数量
SELECT CONVERT(CHAR(8),DATEADD(second,1000,0),108) 

例子:

SELECT CONVERT(CHAR(8),DATEADD(second,CAST (SUBSTRING('the call was 10000 seconds', 14, 5) AS INT),0),108) 
+0

??????????????? downvoter? –

+1

这看起来非常像@Rahul给出的答案 – DaveRlz

+0

@DaveRlz你在说什么? 108是正确的格式,而不是114 –