Sql server 如何根据日期创建序列,即06-11-2020输出字段将为2011001
请帮助我在SQL server中编写函数或存储过程,我希望根据日期创建序列,即06-11-2020输出字段将为2011001 到目前为止,我写得很好Sql server 如何根据日期创建序列,即06-11-2020输出字段将为2011001,sql-server,tsql,Sql Server,Tsql,请帮助我在SQL server中编写函数或存储过程,我希望根据日期创建序列,即06-11-2020输出字段将为2011001 到目前为止,我写得很好 DECLARE @NewLotNo varchar(10); DECLARE @PreFix varchar(6); DECLARE @Id int; SELECT @Id = ISNULL(MAX(MeltingId), 0) + 1 FROM tblMelting SELECT @PreFix = C
DECLARE @NewLotNo varchar(10);
DECLARE @PreFix varchar(6);
DECLARE @Id int;
SELECT
@Id = ISNULL(MAX(MeltingId), 0) + 1
FROM tblMelting
SELECT
@PreFix = CONVERT(char(6), GETDATE(), 112)
SELECT
@NewLotNo = RIGHT(@PreFix, 4) + RIGHT('00' + CAST(@Id AS varchar(6)), 6)
SET NOCOUNT ON
BEGIN
INSERT INTO tblMelting (MeltingDt, LotNumber, ItemId, Percentage, GrossWt)
VALUES (CONVERT(date, @HMeltingDt, 105), @NewLotNo, @HItemId, @HPercentage, @HGrossWt)
END
它可以工作,但在10个数字之后,它的工作方式就像20110010,应该是2011010
请帮帮我
“问候”似乎不像
RIGHT('00',6)
你想要RIGHT('00',3)
。否则,这正是你所要求的。'0010'
的最后6个字符是'0010'
*而不是'010'
。或者您只需停止使用右…
并定义一个变量@CurrYear INT=YEAR(GET_DATE)*1000
,然后使用CAST(@CurrYear+@ID)作为NVARCHAR(10)
或您需要的任何长度
SELECT FORMAT (getdate(), 'yyMMdd') as date