有张表是这样的:
id shijian jieguo
1 2011-08-19 13:01:05.000 有
其中id是自动编号的,shijian这字段应该是每月连续的,jieguo都按“有”添加吧。
补充shijian中在当月中缺失的日期,如果有缺失的日期按照缺失的日期值添加,时间随机在13:00:00到14:00:00之间。
我想写个SQL语句每月月末执行一次。自己不会,请帮助。
------解决方案--------------------
我的代码可能不能直接使用,你建个测试数据库,把代码全部复制过去,运行试试呢?
或者加我QQ,254113859.
调整了生成随机时间的方法。
- SQL code
--插入截至到昨天的连续随机日期到表tDECLARE @start_date datetime;DECLARE @insert_date datetime;DECLARE @today datetime = getdate();SET @start_date = CAST ( (CONVERT(varchar(7),GETDATE(),120)+'-01') AS datetime);SET @start_date = DATEADD(hour,13,@start_date);SET @insert_date = @start_date SET @insert_date = @insert_date + rand() * 1.0/24--当下一条要插入的数据小于当前日期执行WHILE DATEPART(day,@insert_date) < DATEPART(day,@today)BEGIN INSERT INTO t VALUES ( @insert_date,'有' ); --准备15:00-16:00的数据 SET @insert_date =CAST( CONVERT(varchar(10),@insert_date,120) as datetime); SET @insert_date = DATEADD(HOUR,15,@insert_date); SET @insert_date = @insert_date + rand() * 1.0/24 INSERT INTO t VALUES ( @insert_date,'无' ); --准备第二天的数据 SET @insert_date = DATEadd(day,1,CAST( CONVERT(varchar(10),@insert_date,120) as datetime)); SET @insert_date = DATEADD(HOUR,13,@insert_date); SET @insert_date = @insert_date + rand() * 1.0/24ENDGO