zoukankan      html  css  js  c++  java
  • 产生18位的随机数作为bigint


    IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[proc_Generate_Rand_Bigint]') AND type in (N'P', N'PC'))
    DROP PROCEDURE [dbo].[proc_Generate_Rand_Bigint]
    GO
    -- =============================================
    -- Author: 傲三
    -- Create date: 2021-08-12
    -- Description: 产生18位的随机数作为bigint
    -- =============================================
    CREATE PROCEDURE [dbo].[proc_Generate_Rand_Bigint]
    @frontIsYYYYMMDDHHMMSS BIT, --前面14位是否是时间
    @resultBigint BIGINT OUT
    AS
    BEGIN
    DECLARE @resultStr VARCHAR(18),@dateStr VARCHAR(50),@randStr1 VARCHAR(9),@randStr2 VARCHAR(9);
    SELECT @randStr1 = RIGHT(100000000 + CONVERT(bigint, ABS(CHECKSUM(NEWID()))), 9),
    @randStr2 = RIGHT(100000000 + CONVERT(bigint, ABS(CHECKSUM(NEWID()))), 9),
    @dateStr = REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(20),GETDATE(),120),'-',''),':',''),' ','')
    IF(@frontIsYYYYMMDDHHMMSS=1)
    BEGIN
    set @resultStr=@dateStr+RIGHT(@randStr1,4)
    END
    ELSE
    BEGIN
    SET @resultStr=@randStr1+@randStr2
    IF(LEFT(@resultStr,1)='0')
    BEGIN
    SET @resultStr='1'+RIGHT(@resultStr,17)
    END
    END
    SET @resultBigint = CONVERT(BIGINT, @resultStr);
    END
    GO

    --0==> 628336056134315476
    --1==> 201310171402033239

    DECLARE @r BIGINT;
    EXEC [proc_Generate_Rand_Bigint] 0,@r OUT
    SELECT @r

  • 相关阅读:
    002变量
    001Java输入、eclipse快捷键
    040同步条件event
    kali配置ip,更新源,更新签名
    039条件变量同步(Condition)
    038信号量
    037多线程同步
    配置java环境变量(详细)
    提高你的Python能力:理解单元测试
    电影里的代码之《机械姬》:筛法求质数
  • 原文地址:https://www.cnblogs.com/ljsjxr/p/15132613.html
Copyright © 2011-2022 走看看