RT,
varchar类型中的数据如2009-4的年月数据,如何转换成datetime,convert等函数好像都不行,用存储过程可以吗,数据库是sqlserver2000,谢谢!

解决方案 »

  1.   

    select cast('2009-4'+'-1' as datetime)
      

  2.   

    declare @d varchar(10)
    set @d='2009-4'select cast(@d+'-1' as datetime)
      

  3.   

    declare @d varchar(10)
    set @d='2009-4'select cast(@d+'-1' as datetime)
    /**
                                                           
    ------------------------------------------------------ 
    2009-04-01 00:00:00.000(所影响的行数为 1 行)
    **/
      

  4.   

    declare @d varchar(10)
    set @d='2009-4'
    select cast(@d+'-1' as datetime)
    /*
    -----------------------
    2009-04-01 00:00:00.000(1 行受影响)
    */
      

  5.   

    declare @d varchar(10)
    set @d='2009-4'
    select convert(datetime,@d+'-1')
    /*
    -----------------------
    2009-04-01 00:00:00.000(1 行受影响)
    */
      

  6.   


    select cast('2009-4'+'-2' as datetime)
      

  7.   

    select convert(datetime,'2009-4'+'-01',120)
      

  8.   

    select convert(datetime,'2009-4'+'-01',120)
    /*
    2009-04-01 00:00:00.000
    */
      

  9.   


    select cast( (select datestring from a)+'-1' as datetime)
      

  10.   

    declare @t varchar(50)set @t='2009-04'select convert(datetime,replace(@t,'-','')+'01')
      

  11.   

    select cast('2009-4'+'-2' as datetime)
    就可以啊
      

  12.   

    declare @str varchar(7)
    set @str='2009-01';
    select CONVERT(Datetime,@str+'-01',111);
    select CAST(@str+'-01' as datetime);
      

  13.   


    declare @dt varchar(10)
    set @dt='2009-4'
    select convert(datetime,@dt+'-01',120)