首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何根据每天的每小时数据对SQL Server中从上午8点到下午8点的12小时范围内的每小时间隔数据进行平均?

要根据每天的每小时数据对SQL Server中从上午8点到下午8点的12小时范围内的每小时间隔数据进行平均,可以使用SQL查询语句来实现。

以下是实现这个目标的一种方法:

  1. 首先,需要创建一个存储过程或者一个SQL查询来获取每小时的平均值。以下是一个示例查询:
代码语言:txt
复制
SELECT 
    DATEADD(HOUR, DATEPART(HOUR, yourTimestampColumn), CONVERT(DATE, yourTimestampColumn)) AS HourlyInterval,
    AVG(yourDataColumn) AS AverageData
FROM 
    yourTable
WHERE
    yourTimestampColumn >= DATEADD(HOUR, 8, CONVERT(DATE, yourTimestampColumn))
    AND yourTimestampColumn < DATEADD(HOUR, 20, CONVERT(DATE, yourTimestampColumn))
GROUP BY 
    DATEADD(HOUR, DATEPART(HOUR, yourTimestampColumn), CONVERT(DATE, yourTimestampColumn))

这个查询将会根据你的数据表中的时间戳列(yourTimestampColumn)和数据列(yourDataColumn)来计算每小时的平均值。查询中的WHERE子句用于筛选出从上午8点到下午8点的数据。

  1. 根据你的需求,可以将这个查询放入一个存储过程中,并添加相应的参数来动态指定日期范围。以下是一个示例存储过程:
代码语言:txt
复制
CREATE PROCEDURE GetHourlyAverages
    @startDate DATE,
    @endDate DATE
AS
BEGIN
    SELECT 
        DATEADD(HOUR, DATEPART(HOUR, yourTimestampColumn), CONVERT(DATE, yourTimestampColumn)) AS HourlyInterval,
        AVG(yourDataColumn) AS AverageData
    FROM 
        yourTable
    WHERE
        yourTimestampColumn >= DATEADD(HOUR, 8, CONVERT(DATE, yourTimestampColumn))
        AND yourTimestampColumn < DATEADD(HOUR, 20, CONVERT(DATE, yourTimestampColumn))
        AND yourTimestampColumn >= @startDate
        AND yourTimestampColumn < DATEADD(DAY, 1, @endDate)
    GROUP BY 
        DATEADD(HOUR, DATEPART(HOUR, yourTimestampColumn), CONVERT(DATE, yourTimestampColumn))
END

这个存储过程接受两个参数:@startDate和@endDate,用于指定查询的日期范围。在查询中,我们将这两个参数用于筛选数据。

请注意,以上示例中的表名、列名和参数名需要根据实际情况进行替换。

这是一个基本的实现方法,可以根据具体需求进行调整和优化。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券