以下是一个数据表中的两列,aa列,bb列:    aa       bb
------------ ---------------
 2006-04-01     2006-04-15
 2006-04-02   2006-04-15
 2006-04-03   2006-04-15
 2006-04-08   2006-04-15
 2006-04-22   2006-04-30
 2006-04-16   2006-04-30
 2006-04-28   2006-04-30
 2006-05-31   2006-05-30
 2006-05-22   2006-05-30
 2006-05-05   2005-05-15以上,在一个数据表有aa列,其内容全部为日期;我想在C#中写一个循环!让它依次执行数据表中的每一行数据;
要求凡是日期在每月的1日到15日之间,则令它的日期为当月的15日,凡日期在16日到当月的最后一天,则令其日期为30日,
2月份取当月的最后一天!
这个循环应该如何写呢? 我只写了一部分,请知道的朋友将这个循环帮我贴一下!谢谢!

解决方案 »

  1.   

    不用循环,两个SQL语句就可以了update table1 set bb=''+ datepart(year,aa)+'-'+datepart(month,aa)+'-15' where datepart(day,aa) between 1 and 15第二句因为偶语法不太记得了,所以只用文字说明Convert(datetime,''+ datepart(year,aa)+'-'+datepart(month,aa)+'-1' ) 将这个日期加一个月再减一天就是本月最后一天
      

  2.   

    update table1 set bb= SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,aa)+1, 0))  where datepart(day,aa) between 1 and 31第二句,
      

  3.   

    真是太感谢了,想不到你们有这么多的goodidea,真是让我大开眼界了,一个SQL语句就能搞定的东西,我却老想着用循环,谢谢大家了!虚心向大家学习!
      

  4.   

    update table1 
    set bb = 
    case 
    when datepart(day,aa) between 1 and 15 then dateadd(dd,-datepart(dd,aa)+1,aa)
    else dateadd(dd,-datepart(dd,dateadd(m,1,aa)),dateadd(m,1,aa))
    end