• MSSQL 一个循环插入的列子


    今天在群里看到有人提问  怎么实现如下图的功能,很明显,如果我们手工插的话,费时费力,那何不来个循环判断插入了,这使我想起了 while 语句

     55

    说做就做   于是  写出了 下面的代码:

    create table rq
    (dt datetime ,
    wb varchar(5)
    )

    declare @dt datetime
    declare @n int

    set @dt='2011-12-1'
    set @n=0

    while @n<10 begin -----看情况修改10这个数据

    insert into rq select  dateadd(d,@n,@dt),23),'上午'
    insert into rq select  dateadd(d,@n,@dt),23),'下午'

    set @n=@n+1

    end

    但是问题出来了,执行完全没有问题,但是dt 一列怎么全部是 为datetime格式了 也就是 日期后面 还跟了一堆0,

    我直接用CONVERT(varchar(12),dateadd(d,@n,@dt),23)函数去转换,但是无论如何转换,插入后的值永远是后面带一堆0的

    那叫一个纳闷了,后来我关注到了数据类型上  原理datetime数据类型就是这样带0的 ,呵呵

    找到症状了 ,对症下药,就把  dt列的  数据类型 换为了 varchar(12) 完美解决,没有0了。

    create table rq
    (dt varchar(12) ,
    wb varchar(5)
    )

    declare @dt datetime
    declare @n int

    set @dt='2011-12-1'
    set @n=0

    while @n<10 begin

    insert into rq select dateadd(d,@n,@dt),'上午'
    insert into rq select dateadd(d,@n,@dt),'下午'

    set @n=@n+1

    end

    写的不好,多多包涵,欢迎指教。

     

    可随意转载,欢迎署名!
  • 相关阅读:
    Lucene:(一)建立索引文件:2。建立索引文件(一)
    Lucene:(一)建立索引文件:2。建立索引文件(二)Segment文件
    92.外边距设置 Walker
    99.元素居中及样式重置 Walker
    94.外边距踩坑 Walker
    101.列表属性 Walker
    97.boxsizing属性 Walker
    98.溢出隐藏 Walker
    95.内边距设置 Walker
    96.内边距和边框踩坑 Walker
  • 原文地址:https://www.cnblogs.com/netsa/p/2283927.html
Copyright © 2020-2023  润新知