zoukankan      html  css  js  c++  java
  • [MSSQL]找出一天数据中从第一条数据开始每累加1小时的数据

    用Sql Server找出一天数据中从第一条数据开始每累加1小时的数据

    -- =============================================
    -- Author:		Allen Cai
    -- Create date: 2018-07-20 15:59
    -- =============================================
    ALTER PROCEDURE PLMS_A_Logistics_Test
    AS
    BEGIN
        DECLARE @i INT; --当前索引行
        DECLARE @rowCount INT; --总行数
        DECLARE @skipCount INT; --跳过行数
        DECLARE @行号 INT;
        DECLARE @签收时间 DATETIME;
        DECLARE @运单号 NVARCHAR(50);
        DECLARE @returnTable TABLE
        (
            运单号 NVARCHAR(50),
            签收时间 DATETIME
        );
        DECLARE @tmpTable TABLE
        (
            行号 INT,
            唯一序列号 VARCHAR(50),
            签收时间 DATETIME,
            运单号 NVARCHAR(50)
        );
    
        INSERT @tmpTable
        SELECT r.*
        FROM
        (
            SELECT ROW_NUMBER() OVER (ORDER BY 签收时间) AS 行号,
                   t.*
            FROM [dbo].[A_Logistics_Test] t
            WHERE 签收时间 >= '2018-07-19'
                  AND 签收时间 < '2018-07-20'
        ) AS r;
    
        SELECT @rowCount = COUNT(行号)
        FROM @tmpTable; --总行数
        PRINT @rowCount; --打印总行数
    
        SET @i = 1;
        WHILE @rowCount >= @i
        BEGIN
            SELECT @行号 = 行号,
                   @签收时间 = 签收时间,
                   @运单号 = 运单号
            FROM @tmpTable
            WHERE 行号 = @i;
            INSERT @returnTable
            SELECT @运单号,
                   @签收时间;
            SELECT @skipCount = COUNT(行号)
            FROM @tmpTable
            WHERE 签收时间 >= @签收时间
                  AND 签收时间 < DATEADD(HOUR, 1, @签收时间);
    
            SET @i = @i + @skipCount;
            PRINT N'当前索引行' + CONVERT(VARCHAR, @i); --打印索引行
        END;
        SELECT *
        FROM @returnTable;
    END;
    GO
    
  • 相关阅读:
    Angular2.x-主/细节组件
    Angular2.x-显示heroes列表
    Angular2.x
    Linux-百度云之AccleriderMini使用
    Angular结构简单介绍
    Phonegap
    Deepin-安装vscode
    javascript 递归函数调用(recursive funciton call)
    go 中的pacage 名称 和import {}中的名称
    go get 下载的包放在哪里呢?
  • 原文地址:https://www.cnblogs.com/VAllen/p/find-one-hour-on-oneday-of-mssql.html
Copyright © 2011-2022 走看看