发布新日志

  • sql 使用dateADD函数 自增时间

    2009-09-11 16:00:25

    这两天又温习了一下SQL,好久没有动过了。。。人都锈竇了哦。

    第一种分钟自增:

    declare @i int,@a varchar(20),@c datetime
    set @i=0
    set @a='100100000'
    set @c='2009-9-11 10:06:01'
    while @i<=20
    begin

        insert T_create_time
         select left(@a,9)+right('000'+ltrim(@i),3),
                 dateadd(minute,1,@c)       
          set @i=@i+1
          set @c=dateadd(minute,1,@c)
    end

    =============运行结果如下

    100100000000       2009-9-11 10:07:01

    100100000001       2009-9-11 10:08:01

    100100000002       2009-9-11 10:09:01

    。。。。

    。。。。

    。。。。

     

    第二种分钟自增:

    declare @i int,@a varchar(20),@c datetime
    set @i=0
    set @a='100100000'
    set @c='2009-9-11 10:06:01'
    while @i<=20
    begin

        insert T_create_time
         select left(@a,9)+right('000'+ltrim(@i),3),
                 dateadd(minute,1,@c)       
          set @i=@i+1
          set @c=@c+1
    end

    =============运行结果如下

    100100000000       2009-9-12 10:07:01

    100100000001       2009-9-13 10:07:01

    100100000002       2009-9-14 10:07:01

    。。。。

    。。。。

    。。。。

    利用这种方法可以为数据库中的某个表插入大量数据库,可以做大数据量的测试工具打好前提,如果涉及多张表的话,可以考虑用触发器同时对多表进行操作。 :)

  • SQL中插入多行(包括列某部分自增)

    2009-09-09 17:43:22

    若表t_run_users中有字段user_no , user_name ,create_date 三字段,其中主键user_no中值为100100000000(12位),user_name的值为0000,(应该不为主键也可用此办法)

    declare @i int,@a varchar(20)
    set @i=1
    set @a='1001'
    while @i<=200
    begin
        insert T_Run_Users
         select left(@a,4)+right('00000000'+ltrim(@i),8),
                right('0000'+ltrim(@i),4), 
                '2009-09-08 09:22:39'
          set @i=@i+1
    end

    扫行出来的结果如下

    ------------------

    user_no              user_name         create_date

    100100000000         0000              2009-09-08 09:22:39

    100100000001         0001              2009-09-08 09:22:39

    100100000002         0002              2009-09-08 09:22:39

    .......

    .......

     

    :)  

Open Toolbar