DECLARE @STR VARCHAR(20)
SET @STR='20150302123426000'
SELECT CAST(LEFT(@STR,8)+' '+SUBSTRING(@STR,9,2)+':'+SUBSTRING(@STR,11,2)+':'+SUBSTRING(@STR,13,2)+'.'+SUBSTRING(@STR,15,3)AS DATETIME)直接字符串处理,或者写个函数包装处理了下

解决方案 »

  1.   

    select convert(datetime,'212212250409',120) 
    120是Style ID,参照
    http://www.w3school.com.cn/sql/func_convert.asp
      

  2.   

    你这个只能这样了:select left('20150302123426000',4)+'-'+substring('20150302123426000',5,2)+'-'
    +substring('20150302123426000',7,2)+' '+substring('20150302123426000',9,2)+':'+substring('20150302123426000',11,2)+':'
    +substring('20150302123426000',13,2)+'.'+substring('20150302123426000',15,3)
      

  3.   

    你确定你格式没错?你给的那个例子是错的,还有我用这种类似的转换还是原样子如:select CONVERT(varchar(100),'20150302123426000',21)还是原样
      

  4.   

    select CONVERT(varchar(100),'20150302123426000',21),字符串转字符串当然没任何意义,第一个参数是你要转换的类型
      

  5.   

    第一种写法是对的,select convert(datetime,'212212250409',120) 转换错误。
      

  6.   

    我昨天直接直接弄了个转换的出来了,然后今天早上就又忘了,无语,想找个简短的涨姿势了,有没有印象是大概什么样的,可以共同想下里面也有cast关键词,还有个datetime类型,我这记性是越来也不行了,睡个觉就忘记了,具体写法我还没有想起来。昨天写的也没用保存,无语了