SQL将字符串转换为时间格式

时间:2015-11-10 16:42:20

标签: sql sql-server date time

我想将字符串时间'141312110'转换为:' 14:13:12.110'

实际上,我bigint列的数据类似于'20151110182425000'我希望将它们转换为datetime格式,如

'10-11-2015 18:24:25.000'  

我将它们分为日期和时间来获取日期部分:

Convert(varchar(10), convert(datetime, '20151110'),105)

Result : '10-11-2015'

需要让时间像那样。

1 个答案:

答案 0 :(得分:1)

您可以将原始字符串转换为“YYYY-MM-DDTHH:MM:SS.SSS”格式。无论国际化设置如何,都应将其识别为日期时间。

你可以用一堆stuff() s来执行此操作:

select cast(stuff(stuff(stuff(stuff(stuff(cast(val as varchar(255), 15, 0, '.'
                                         ), 13, 0, ':'
                                   ), 11, 0, ':'
                             ), 9, 0, 'T'
                       ), 7, 0, '-'
                 ), 5, 0, '-'
             as datetime)