• [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
    
  • 相关阅读:
    顺序栈的模拟
    Maven安装教程详解
    C# CRC
    Oracle知识分类之常见规范
    Oracle知识分类之异常
    el-tree树结构的数据封装
    sessionStorage和localStorage
    el-form 中为el-input 添加正则校验 以及el-input正则限制
    动态组件与父子传值的灵活应用 ref控制子组件 props,emit传值
    el-tree树组件的封装 (运用递归对接口返回当前菜单数据为对象处理)
  • 原文地址:https://www.cnblogs.com/VAllen/p/find-one-hour-on-oneday-of-mssql.html
Copyright © 2020-2023  润新知