例子:A表中有个时间字段,里面储存的时间格式为   “年月日小时分钟秒” 例如 201106011210  代表2011-06-01  12:10为2011年6月1日12点10分,我如何用sql语句把数据库里面的这个 文本字段转换成  日期格式 例如把 201106011210  转换成 2011-06-01  12:10新手求解,分不多 望大家赐教

解决方案 »

  1.   

    CAST(@COLUMN AS DATETIME)CONVERT(DATETIME,@COLUMN )
      

  2.   

    去字符串截取。convert(datetime,
      left(col,4)+'-'+substring(col,5,2)+'-'+substring(col,7,2)+' '+substring(col,9,2)+':'+right(col,2))
      

  3.   


    declare @str varchar(12)
    set @str = '201106011210'select convert(datetime,
      left(@str,4)+'-'+substring(@str,5,2)+'-'+substring(@str,7,2)+' '+substring(@str,9,2)+':'+right(@str,2))/***********-----------------------
    2011-06-01 12:10:00.000(1 行受影响)
      

  4.   

    2楼我按照你说的弄了已经,但是报错提示为  
    语句我的为 select cast(201106101210 as datetime ) 
    提示
    消息 8115,级别 16,状态 2,第 2 行
    将 expression 转换为数据类型 datetime 时发生算术溢出错误。(1 行受影响)
      

  5.   


    declare @t varchar(20)
    set @t='201106011210'
    select dateadd(mi,right(@t,2)+0,
    dateadd(hour,substring(@t,9,2)+0,cast(left(@t,8) as datetime)))
    /*
    2011-06-01 12:10:00.000
    */