生成订单号

USE [DB]
GO

/****** Object:  UserDefinedFunction [dbo].[GetNewPayOrderCode]    Script Date: 03/12/2013 16:26:22 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION [dbo].[GetNewPayOrderCode]
(
   @Date DATETIME

RETURNS VARCHAR(16)
AS 
BEGIN
 Declare @Year    Char(4)     -- 年月
 Declare @Month     Char(2)   -- 月
 Declare @Day     Char(2)    -- 日
 Declare @MaxPayCode Char(4)     -- 最大的流水号
 Declare @NewPayCode char(16) -- 返回新流水号

 Set @Year =  Substring(Convert(Char(10), @Date, 112), 1, 4)
 Set @Month = Substring(Convert(Char(10), @Date, 112), 5, 6)
 Set @Day =   Substring(Convert(Char(10), @Date, 112), 7, 8)
 
 Declare @Prefix    VARCHAR(50)     -- 前缀
    SELECT @Prefix = ConfigValue FROM LKConfig WHERE ConfigKey='OrderCodePrefix'
   
 SELECT @MaxPayCode = Right(Max(Code), 4) FROM PayOrder
 WHERE LEFT(Code, 11) = @Prefix + @Year + @Month + @Day

 IF IsNull(@MaxPayCode, '') = ''
 BEGIN
  Set @NewPayCode = @Prefix + @Year + @Month + @Day + '0001'
 END
 ELSE
 BEGIN
  Set @NewPayCode = @Prefix + @Year + @Month + @Day + Right('0000' + CAST(CAST(@MaxPayCode AS INT)+ 1 AS Varchar(4)), 4)
 END

 RETURN @NewPayCode
END

GO

转载于:https://www.cnblogs.com/gaoshuai/archive/2013/03/12/2955953.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值