将字符串转换为日期和时间

use*_*415 2 sql t-sql sql-server datetime sql-server-2014

我有一个数据,其中日期和时间以yyyymmdd_time(20161012_1528)格式出现.

我想将它转换为SQL Server DB中的日期时间为2016-10-12 15:28:00:00

有没有直接的方法来做到这一点.还是要创建一个自定义函数?

Joh*_*tti 7

Declare @String varchar(25) = '20161012_1528'

Select cast(left(@String,8)+' '+Stuff(right(@String,4),3,0,':') as datetime)
Run Code Online (Sandbox Code Playgroud)

要么

Select cast(Stuff(Replace(@String,'_',' '),12,0,':') as datetime)
Run Code Online (Sandbox Code Playgroud)

返回

2016-10-12 15:28:00.000
Run Code Online (Sandbox Code Playgroud)