将来自Web服务的此字符串转换为数据库的日期时间时出现问题。
我知道我可以采取每个边日期/时间的子字符串并格式化它的地狱,这样我基本上将它分开并将时间添加回日期,但必须有一个更简单的方法。如果我这样做,我很害怕" hack"那么在某个地方就会有一个会破坏逻辑的日期。
所以有人在转换格式为#34; 2014-08-12-12:42:38:133936"到Datetime数据类型?
答案 0 :(得分:0)
如果您不需要将精确度保持在yyyy-mm-dd hh:mm:ss.mmmmmm,或者您对yyyy-mm-dd hh:mm:ss.mmm
这应该这样做:
DECLARE @value VARCHAR(MAX) = '2014-08-12-12:42:38:133936'
SELECT convert(datetime, STUFF(SUBSTRING(@value,1,LEN(@value)-3),11,1,' '), 21)
或
SELECT CAST(STUFF(SUBSTRING(@value,1,LEN(@value)-3),11,1,' ')AS DATETIME )