各位好,
我现在的做法是取得上个月的日期:select dateadd(month,-1,getdate())
可是这样的结果是:2008-06-03 10:02:06.317
只想取得格式为:2008-06
想用left截取一下,但是结果也不正确,麻烦大家给指导一下 啊,3ks

解决方案 »

  1.   


    select convert(varchar(7),dateadd(month,-1,getdate()),120)
      

  2.   

    回复楼上的,你这样只能取得时间月数的间隔数是1 
    我想要的结果是如果我选择的时间为2008-7-3号,那么我的sql运行的时间范围为
    2008-06着一个月分的??
      

  3.   

    declare @y int, @m int
    select @y = Year(dateadd(month,-1,getdate()))
    select @m = Month(dateadd(month,-1,getdate()))if @m < 10
        select Cast(@y as varchar(4)) + '-0' + Cast(@m as varchar(2))
    else
        select Cast(@y as varchar(4)) + '-' + Cast(@m as varchar(2))
      

  4.   

    3楼不是答复你了么?用datediff
      

  5.   

    可是这样的结果是:2008-06-03 10:02:06.317 
    只想取得格式为:2008-06 
    想用left截取一下,但是结果也不正确,麻烦大家给指导一下 啊,3ksselect convert(varchar(7),dateadd(month,-1,getdate()),120)/*
            
    ------- 
    2008-06(所影响的行数为 1 行)
    */
      

  6.   

    select  left(Convert(nvarchar,dateadd(month,-1,getdate()),120),7)
      

  7.   

    select convert(char(7),dateadd(month,-1,getdate()),120)
      

  8.   

    select convert(varchar(7),dateadd(month,-1,getdate()),120)
      

  9.   

    很简单啊  记的 送分啊  
                     
      select month(getdate())-1
      

  10.   

    select convert(varchar(7),dateadd(month,-1,getdate()),120)