MySql中,在下个月到来之前将表中(只一张表)的[b]某个字段清零[/b],如果能用[b]SQL实现[/b],语句该怎么写
当然最方便的就是[b]自动清零[/b]了,但一点毫无头绪,各位有什么高招?谢谢了!
[b]问题补充:[/b]
[i] lovewhzlq (资深架构师):
你说的我也知道是根据时间,但具体怎么判断?怎么知道已经到月底了,因为每个月都月大月小,还有闰与不闰的问题[/i]
select day(dateadd(mm,1,getdate())-day(getdate()))
这个就是出得出当月的天数,自己写个存储过程就可以了
update table set field = null
根据时间,也就是月底来做这个处理,
create procdure test
BEGIN
DECLARE i int;
SET i=0;
WHILE i =select day(dateadd(mm,1,getdate())-day(getdate()))
DO
update table set field = null ;
WHILE i<select day(dateadd(mm,1,getdate())-day(getdate()))
DO
SET i=i+1;
END WHILE
END
不一定要用SQL或者是触发器来实现的,我觉得吧,应该做在应用程序里面,这样比较好维护,建议你使用quartz来实现
写存储过程的话也要程序在每月底自动调用的,主要是要解决怎么自动调动的问题
也可以判断月初(就是1号的0点0分0秒吗)先清零吗,用quartz来实现.这个判断应该很容易的。