年月日+用户工号+5位流水号如   110415+1234+00001
流水号从110415123400001开始,
如果在当天之内插入此流水号,则此流水号递增,
如果不是在当天时间,必须从110416123400001开始递增
这个怎么实现?

解决方案 »

  1.   

    select top1 * from Number where order by id desc查询表Number最后一条记录,查询到上一个的流水号。
    读取流水号按你的记录,肯定是15位的,假定读出来存储在string类型的ID字段里。如果读出来不是string类型,则使用Convert.ToStrting(),强制转换为string类型。string ID = "110415123400001";
    string year = ID.Substring(0, 2);
    string month = ID.Substring(2, 2);
    string day = ID.Substring(4, 2);
    string yaerNow = Convert.ToString(DateTime.Now.Year).Substring(2, 2);
    string monthNow = Convert.ToString(DateTime.Now.Month);
    string dayNow = Convert.ToString(DateTime.Now.Day);
    if (year != yaerNow || month != monthNow || day != dayNow)
    {
        //判断是否创建新的流水号
    }建议不要再上面的IF条件里写创建流水号的代码,而是作为一个判断,比如有一个“全局变量”NewID = false,如果为True则跳转如添加00001,如果为false则继续……
      

  2.   

    大致的思路Application("流水号")
    Application("流水号对应的日期")if Now = 当天 then 
       Application("流水号")=Application("流水号")+1
    else
       Application("流水号")=1
       Application("流水号对应的日期")= newData
    end if
      

  3.   


    declare @id varchar(20)
    set @id=convert(char(6),getdate(),12)+'1234'
    if exists(select 1 from tablename where id like @id+'%')
    begin
        select @id=@id+right((right(max(id),4)+10001),4) from tablename where id like @id+'%'
    end
    else
       set @id=@id+'0001'
      

  4.   

    刚写的,SQL生成流水号