>"max_number"是 MS SQL 表中包含当前日期的序列号中的最大整数
例如:序列号:"2018122210"由日期:2018/12/22 和数字:10 组成。
这一天的下一个系列将是:2018122211第二天的第一个系列将是:201812231
试试这个
DECLARE @T TABLE
(
MaxNum VARCHAR(20)
)
;WITH CTE
AS
(
SELECT
MySeq = 1,
MyDate = FORMAT(GETDATE(),'yyyyMMdd'),
MaxNum = FORMAT(GETDATE(),'yyyyMMdd')+'01'
UNION ALL
SELECT
MySeq = MySeq +1,
MyDate = FORMAT(GETDATE(),'yyyyMMdd'),
MaxNum = MyDate+RIGHT('00'+CAST(MySeq+1 AS VARCHAR(10)),2)
FROM CTE
WHERE MySeq < DAY(EOMONTH(GETDATE()))
)
INSERT INTO @T
SELECT
MaxNum
FROM CTE
SELECT
MaxId = FORMAT(GETDATE(),'yyyyMMdd')+
RIGHT('00'+CAST(
MAX(CAST(REPLACE(MaxNum,FORMAT(GETDATE(),'yyyyMMdd'),'') AS INT))+1
AS VARCHAR(10)),2)
FROM @T
WHERE FORMAT(GETDATE(),'yyyyMMdd') = LEFT(MaxNum,8)
希望这有帮助