我在数据库表(即交易ID)中有一列。它的数据类型是var char(50)。现在,我想通过将当前日期与生成的序号相结合来保存一行。
例如Example10/9/2016
是日期,因此保存第一个事务的日期如10920161,而保存下一个事务的10920162
依此类推。每天之后,序列号将重置为1。
我怎样才能做到这一点?
在SQL Server中,它可以很简单:
transactionId =
CONCAT(DATEPART(MONTH, GETDATE()),
DATEPART(DAY, GETDATE()),
DATEPART(YEAR, GETDATE()),
(SELECT COUNT(1)
FROM tableName
WHERE CONVERT(DATE, dateColumn) = CONVERT(DATE, getdate())) + 1)
获取该日期的交易数,并添加一个。将其与“今天的日期”的格式化字符串结合起来。
如果您今天已有3条记录,结果将是:
100920164
运行SQL提琴
编辑:EF建议的代码段:
string dateStr = DateTime.Today.ToString("Mdyyyy");
DateTime todayMidnight = DateTime.Today;
DateTime tomorrowMidnight = DateTime.Today.AddDays(1);
obj.transactionId = dateStr +
context.tableName.Count(x=> x.dateColumn >= todayMidnight
&& x.dateColumn < tomorrowMidnight) + 1;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句