zoukankan      html  css  js  c++  java
  • 获得每天的日期流水 函数

    --获得每天的日期流水(20160507001)
    CREATE FUNCTION [dbo].[f_GetDateFlowNo]
        (
          ---日期流水(20160507001)
          @dateFlowNo VARCHAR(30) ,
          --流水长度len(0001)
          @noLen BIGINT ,
          @showtype VARCHAR(8) --yymmdd,yyyymmdd,yymm,yyyymm
        )
    RETURNS VARCHAR(30)
    AS
        BEGIN
            --定义当天字符串
            DECLARE @DateStr VARCHAR(10);
            --定义序号字符串
            DECLARE @No VARCHAR(20);
            --得到序号No字符串
            DECLARE @NoStr VARCHAR(20)= '00000000000000000000';
            SET @showtype=LOWER(@showtype) ; 
            SET @DateStr = CASE WHEN @showtype = 'yyyymmdd'
                                THEN CONVERT(VARCHAR(8), GETDATE(), 112)
                                WHEN @showtype = 'yymmdd'
                                THEN CONVERT(VARCHAR(6), GETDATE(), 12)
                                WHEN @showtype = 'yymm'
                                THEN CONVERT(VARCHAR(4), GETDATE(), 12)
                                WHEN @showtype = 'yyyymm'
                                THEN CONVERT(VARCHAR(6), GETDATE(), 112)
                                ELSE CONVERT(VARCHAR(8), GETDATE(), 112)
                           END
           
            --判断传入的字符串是否为''
            IF ISNULL(@dateFlowNo, '') = ''
                BEGIN
                    SET @dateFlowNo = @DateStr + RIGHT(@NoStr + '1', @noLen); 
                END;
            ELSE
                BEGIN
                    --去到当前序号+1
                    SET @No = CAST(CAST(REPLACE(@dateFlowNo, @DateStr, '') AS BIGINT)
                        + 1 AS VARCHAR(20));
                    --判断长度是否超过序号最大字符串(不超过补)
                    IF LEN(@No) < @noLen
                        BEGIN
                            SET @No = RIGHT(@NoStr + @No, @noLen);
                        END;
                    --返回值赋值                       
                    SET @dateFlowNo = @DateStr + @No;
                END;
            RETURN @dateFlowNo;

        END;  

  • 相关阅读:
    Bootstrap标签(label)的使用
    Docker学习(二)
    linux 的tee命令
    解决 Docker pull 出现的net/http: TLS handshake timeout 的一个办法
    win 10 安装.msi 程序出现the error code is 2503
    Kbuntu16.04利用快捷键调用终端Konsole
    ubuntu上swift开发学习2
    ubuntu上swift开发学习1
    Linux中常用文件传输命令及使用方法
    Kbuntu16.04添加工作空间
  • 原文地址:https://www.cnblogs.com/zengtianli/p/8625318.html
Copyright © 2011-2022 走看看