一个sql日期转换问题,不是很明白

  select space(8) as fsrq into #test0 where 0 = 1

  declare @fsrq char(8)
  set @fsrq=‘20141111‘
    while convert(char(8), @fsrq, 112) <= ‘20141211‘
      begin
        insert #test0 (fsrq) select convert(char(8), @fsrq, 112)
        select @fsrq = dateadd(day, 1, @fsrq)
      end

  select * from #test0

  这样一段代码,进入了死循环,把代码改为下面的这种,也是跳不出。

select space(8) as fsrq into #test0 where 0 = 1

  declare @fsrq char(8)
  set @fsrq=20141111
  while @fsrq <= 20141211
    begin
      insert #test0 (fsrq) select @fsrq
      select @fsrq = dateadd(day, 1, @fsrq)
      select @fsrq = convert(char(8),@fsrq,112)
    end
   
select * from #test0

  事实上第一种只要把char(8)换成datetime类型就一点问题都没有。

  我是错在哪里了,请指点一二啊

  

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。