(SELECT TOP 1 @periodYear + 'P' +  convert(VARCHAR(3),cal_Period) + 'W' + convert(VARCHAR(3),cal_week) FROM [DataEntry].[dbo].[Calendar] where cal_year = @periodYear and [Cal_StartDate] <= Pur_PurchaseDate and [Cal_EndDate] >= Pur_PurchaseDate) as Period输出结果为:
2011P8W4
2011P8W3
2011P9W1
2011P8W3
2011P8W3
2011P6W2如何修改 convert(VARCHAR(3),cal_Period)如初如下结果
2011P08W4
2011P08W3
2011P09W1
2011P08W3
2011P08W3
2011P06W2就是个位数不足两位用0替换

解决方案 »

  1.   

    (SELECT TOP 1 @periodYear + 'P' + right('00'+convert(VARCHAR(3),cal_Period),2) + 'W' + convert(VARCHAR(3),cal_week) FROM [DataEntry].[dbo].[Calendar] where cal_year = @periodYear and [Cal_StartDate] <= Pur_PurchaseDate and [Cal_EndDate] >= Pur_PurchaseDate) as Period
      

  2.   

    convert(VARCHAR(3),cal_Period)改为right(1000+cal_Period,3)