首页 > 解决方案 > 如何根据日期创建序列,即 06-11-2020 输出字段将为 2011001

问题描述

请帮助我在 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 = 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

请帮助我

问候

标签: sql-servertsql

解决方案


SELECT FORMAT (getdate(), 'yyMMdd') as date

推荐阅读