永发信息网

ASP.NET(C#)

答案:1  悬赏:30  手机版
解决时间 2021-08-01 15:23
  • 提问者网友:戎马万世
  • 2021-07-31 18:29

做一个旅店客人得信息添加的功能
用SQL 写得数据库 其中旅客编码的列名是CLIENTCODE 类型是char(12)
是由12位编码组成得 1-8位为登记日期 如20091111
第9至12位为顺序号,顺序号每天零点置0,以“0001”为开始,每次递增1。
那位高手 指点指点小弟设计的时间不长 急需 指点 请回答详细些最好有代码参考

最佳答案
  • 五星知识达人网友:十鸦
  • 2021-07-31 19:34

你的表还需要一个时间字段。


给你写个 SQL 函数吧。



FUNCTION getSerial()
RETURNS NVARCHAr(20) AS
BEGIN


DECLARE @Result NVARCHAr(20), @Now DATETIME


SET @Now = GETDATE()


SELECt TOP 1 @Result = CLIENTCODE FROM {旅客编码表} WITH(HOLDLOCK) WHERe DATEDIFF(DAY, {表中的时间字段,没有自己增加一个,默认值 getdate()}, @Now) = 0 ORDER BY {表中的时间字段,没有自己增加一个,默认值 getdate()} DESC


IF(@Result IS NOT NULL AND @Result <> '')
SET @Result = RIGHt(STR(CAST('1' + RIGHt(@Result, 4) AS INT) + 1), 4)
ELSE
SET @Result = '0001'


SET @Result = CONVERT(NVARCHAR, @Now, 112) + @Result


RETURN @Result


END

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯