SQL创建流水号
很多单据需要产生类似于“20101229-0001”这样以时间加上序号的流水号。我们可以通过SQL在数据库里来生成这样的序列号码。
下面我们设计一张表格用以存放流水号信息。
列名 | 类型 | 长度 |
ID<主键> | Int | 4 |
YYYY(年份) | Char(4) | 4 |
MM(月份) | Char(2) | 2 |
DD(日期) | Char(2) | 2 |
Num(当前日期序号) | Char(4) | 4 |
SerialNum(流水号) | Char(13) | 13 |
表中的“YYYY”字段对应于“20101219-0001”中的“2010”,表示年份。“MM”对应于流水号中的“12”,表示月份。同样,“DD”对应于“19”,表示日期。“Num”字段则对应于“0001”,表示当前日期的序号。最后一个字段“SerialNum”则是完整的流水账号。
在数据库中我们创建一个存储过程来产生这样一个流水号,并把它插入到表中。
在代码里面我们用‘0’作为replicate函数的参数来填充不足的位数,因为我们要求年份“YYYY”是四位数,“MM”月份是两位数,“DD”日期是两位数,“Num”是四位数。假如当前日期是“2010年1月1日”,那么我们通过month()方法获取的值就是‘1’。它不足两位,因此我们需要补足。