select convert(datetime,right(strdate,10),120) from yourtable

解决方案 »

  1.   

    字符串型:格式2006-3-1
    convert(varchar(10),dateadd(dd,DATEPART(dy,getdate()),cast('20'+substring(datestr,2,2)+'-1-1' as datetime)),020)日期型:2006-2-1 00:00:00
    dateadd(dd,DATEPART(dy,getdate()),cast('20'+substring(datestr,2,2)+'-1-1' as datetime))
      

  2.   

    DATEADD([day], CAST(RIGHT(strDate, 3) AS int) - 1, CAST('20' + LEFT(RIGHT(strDate, LEN(strDate) - 1), 2) AS Datetime))上面是我写的,并且是正确的显示为2006-2-1
    我是想知道有别的简单的方法没有了
      

  3.   


    create table #t1(
    a datetime,
    b char(6)
    )declare @StartTime as datetime
    declare @strDate  as char(6)
    set @StartTime='2006-1-1'
    set @strDate ='106001'
    while @StartTime<='2007-12-31'
    begin
     insert into #t1 values(@StartTime,@strDate) 
     set @StartTime=Dateadd(day,1,@StartTime)
    set @strDate=@strDate+1
    endselect * from #t1
    这个是测试过的,直接执行,应该很快可以达到你要修改的目的的
      

  4.   

    然后你可以根据#t1和你的tem_table 通过字段b和strDate关联进行修改
      

  5.   

    我也碰到过这种情况,因为原始数据在EXCEL表里的格式问题,设置一下它的格式为日期类型再导进去应该可以解决一部分,不过可以用JAVA导进去