我正在开发一个项目,其中发票编号应打印为
(ddMMYYYY)+(Int)
e.g。
07072015001
07072015002
....
07072015110
等等。
我正在使用asp.net(C#)和SQL Server作为后端。
请帮忙。
答案 0 :(得分:0)
您可以执行以下操作
int invoice = 1;
string date = DateTime.Now.ToString("MMddyyyy") + invoice.ToString();
<强>输出强>
070720151
答案 1 :(得分:0)
这是你要找的吗?而不是ddMMYYYY
使用ddMMyyyy
DateTime myDate = DateTime.Now;
string strTime = myDate.ToString("ddMMyyyy");
int intValue=111;
var invoiceNumber = strTime + intValue.ToString();
答案 2 :(得分:0)
也许这个,如果您更喜欢在C#格式化:
var invoiceNumber = 2;
var maxWidth = 3;
var theDate = DateTime.Now;
var formattedValue = theDate.ToString("ddMMyyyy")
+ invoiceNumber.ToString().PadLeft(maxWidth, '0');
答案 3 :(得分:0)
假设您有一个Invoice
表,其中至少包含InvoiceID
(int identity
)和InvoiceDate
(数据类型为DATE
),那么您可以很容易地将一个计算的,持久化的列添加到您的表中:
ALTER TABLE dbo.Invoices
ADD InvoiceNo AS REPLACE(CONVERT(VARCHAR(10), InvoiceDate, 104), '.', '') +
RIGHT(REPLICATE('0', 6) + CAST(InvoiceID AS VARCHAR(6)), 6) PERSISTED
因此,如果表中有几行,那么InvoiceNo
将由SQL Server自动填充,如下所示:
此列可以像任何其他列一样使用和读取 - 它只是您无法设置(SQL Server会在插入新行或更新现有行时自动为您执行此操作)