Exp: 字符串 '20110110143012123' 想转换成 '2011-01-10 14:30:12.123' 用函数怎么写?

解决方案 »

  1.   

    sql2000里面cast()只能转换 '20100110' 这样的字符串 如果是 '20110110143012123' 好像不能转换啊
      

  2.   

    CONVERT (data_type[(length)], expression [, style])参数
    expression是任何有效的 Microsoft® SQL Server™ 表达式。有关更多信息,请参见表达式。 data_type目标系统所提供的数据类型,包括 bigint 和 sql_variant。不能使用用户定义的数据类型。有关可用的数据类型的更多信息,请参见数据类型。 lengthnchar、nvarchar、char、varchar、binary 或 varbinary 数据类型的可选参数。 style日期格式样式,借以将 datetime 或 smalldatetime 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型);或者字符串格式样式,借以将 float、real、money 或 smallmoney 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型)。
      

  3.   

    已Ok 具体是这样cast(left(EPSTA.CREATE_DATE,4)+'-'+substring(EPSTA.CREATE_DATE,5,2)+'-'+substring(EPSTA.CREATE_DATE,7,2)+' '+substring(EPSTA.CREATE_DATE,9,2)+':'+substring(EPSTA.CREATE_DATE,11,2)+':'+substring(EPSTA.CREATE_DATE,13,2)+'.'+substring(EPSTA.CREATE_DATE,15,3) as datetime)
      

  4.   


    declare @d varchar(20)
    set @d='20110110143012123'
    select stuff(stuff(stuff(stuff(stuff(stuff
    (@d,5,0,'-'),8,0,'-'),11,0,' '),14,0,':'),17,0,':'),20,0,'.') as yourdate
    /*
    yourdate
    --------------------------
    2011-01-10 14:30:12.123
    */