例如字符串:
2006.1.1.2006.2.2
想改成这样的
2006.1.1-2006.2.2
如何写这个sql啊?
Thanks!

解决方案 »

  1.   

    select substring('2006.1.1.2006.2.2',8,1,'-')
      

  2.   

    select concat('2006.1.1','-','2006.2.2')
    from tablename
      

  3.   

    STUFF('2006.1.1.2006.2.2', 7, 1, '-')
      

  4.   

    对函数不清楚 
    可以打开查询分析器
    左边的树型列表里面有找字符串函数里面的
    substring 
    就可以看见它需要的参数和它的作用了.
      

  5.   

    TO:
     mugua604(熟不了的木瓜) ( ) 信誉:100    Blog  2006-10-24 16:48:00  得分: 0  
     
     
       STUFF('2006.1.1.2006.2.2', 7, 1, '-')
    是有BUG,set @vDateStr='2006.10.10.2006.12.12'这样的数据就有问题
    ----
    declare @vDateStr varchar(30)
    set @vDateStr='2006.1.1.2006.2.2'
    select stuff(@vDateStr,charindex('.',@vDateStr,charindex('.',@vDateStr,6)+1),1,'-')
    --显示结果2006.1.1-2006.2.2
    set @vDateStr='2006.10.10.2006.12.12'
    select stuff(@vDateStr,charindex('.',@vDateStr,charindex('.',@vDateStr,6)+1),1,'-')
    --显示结果2006.10.10-2006.12.12
      

  6.   

    提供一个思路:用replace函数,如果格式是2000-0-0或者2000-00-00的话都可取len("")/2再替换掉.