基于日期的订单ID

时间:2011-07-20 07:24:49

标签: sql sql-server

我想根据id和日期创建一个orderid,如2011070001

代码:

DECLARE @TT TABLE (
orderid as CONVERT(varchar, YEAR(date)) + CONVERT(varchar, MONTH(date)) + RIGHT('000' + CONVERT(varchar, id),5),
id int IDENTITY(1,1),
date date
)

INSERT INTO @TT VALUES ('2011-06-11 08:43:17.000')
INSERT INTO @TT VALUES ('2011-07-20 08:43:17.000')

SELECT * FROM @TT

输出

  

订单ID日期
  201160001 1 2011-06-11
  201170002 2 2011-07-20

如何将此临时表插入我的订单表?

1 个答案:

答案 0 :(得分:2)

只需在select的上方写一个insert语句。但是您必须确保从select返回的列与插入列匹配。

DECLARE @TT TABLE (
orderid as CONVERT(varchar, YEAR(date)) + CONVERT(varchar, MONTH(date)) + RIGHT('000' + CONVERT(varchar, id),5),
id int IDENTITY(1,1),
date date
)

INSERT INTO @TT VALUES ('2011-06-11 08:43:17.000')
INSERT INTO @TT VALUES ('2011-07-20 08:43:17.000')

INSERT INTO ORDERTABLE
SELECT * FROM @TT