我必须生成发票编号,如YYMM #### YY和MM很简单,我们可以使用今天的日期,但如何添加自定义4位数字从001和999开始 我使用sql存储发票号码
答案 0 :(得分:2)
如果您每月最多只能获得999张发票,那么您可能不必担心两张快速连续发票中的低效率,因此您需要生成发票:
如果您必须处理可能由许多不同客户生成的批次发票,并且不需要连续的发票ID,则可以对每个客户使用lo/hi algorithm有效地"保留"标识。虽然这听起来有点矫枉过正。
哦,如果一个月内 超过999张发票,你应该知道你想要发生什么......
1 你可以在这里避免过滤,并假设其他一切都遵循相同的约定,但我个人过滤
答案 1 :(得分:2)
如果要在SQL Server端执行此操作,则需要在sql server中创建SEQUENCE
对象,并且可以执行类似的操作。
CREATE SEQUENCE dbo.GetInvoiceNumber
AS INT
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 999
CYCLE
CACHE 10
;
SELECT CONVERT(VARCHAR(4), GETDATE(), 12)
+ RIGHT('0000'
+ CAST( NEXT VALUE FOR dbo.GetInvoiceNumber AS VARCHAR(3)),4)
查询将返回
之类的值15080001
15080002
15080003
15080004
.......
注意
您确定您的客户在一个月内永远不会生产超过999张发票,我认为这个数字应该相当高,以防万一。