如何将某个vchar字段的一系列诸如'1998.3.1'的值修改为'1998-3-1'? 实际上我是想把这列改为日期型的.

解决方案 »

  1.   


    SELECT REPLACE('1998.3.1','.','-')
      

  2.   

    --如'1998.3.1'同樣識別,不需要修改
    select cast('1998.3.1' as datetime)
      

  3.   

    --日期转换参数,值得收藏
    select CONVERT(varchar, getdate(), 120 )
    2004-09-12 11:06:08select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
    20040912110608select CONVERT(varchar(12) , getdate(), 111 )
    2004/09/12select CONVERT(varchar(12) , getdate(), 112 )
    20040912select CONVERT(varchar(12) , getdate(), 102 )
    2004.09.12其它我不常用的日期格式转换方法:select CONVERT(varchar(12) , getdate(), 101 )
    09/12/2004select CONVERT(varchar(12) , getdate(), 103 )
    12/09/2004select CONVERT(varchar(12) , getdate(), 104 )
    12.09.2004select CONVERT(varchar(12) , getdate(), 105 )
    12-09-2004select CONVERT(varchar(12) , getdate(), 106 )
    12 09 2004select CONVERT(varchar(12) , getdate(), 107 )
    09 12, 2004select CONVERT(varchar(12) , getdate(), 108 )
    11:06:08select CONVERT(varchar(12) , getdate(), 109 )
    09 12 2004 1select CONVERT(varchar(12) , getdate(), 110 )
    09-12-2004select CONVERT(varchar(12) , getdate(), 113 )
    12 09 2004 1select CONVERT(varchar(12) , getdate(), 114 )
    11:06:08.177
      

  4.   


    select cast(replace('2009.3.1','.','-')as datetime) -----------------------
    2009-03-01 00:00:00.000(1 行受影响)
      

  5.   

    修改你表的该列的数据类型alter table tb
     alter col datetime
      

  6.   

    alter table tablename alter column col datetime