首页 > 解决方案 > 根据 StartDate 获取每小时数据

问题描述

例如,

我有这样的数据:-

batch  MIN    MAX   TIME
 X      10     20   2018-07-12 10:29:00.000
 X      30     50   2018-07-12 10:30:00.000
 X      50     30   2018-07-12 10:31:00.000
 |      |       |     | 
 X      40     20   2018-07-12 11:45:00.000

现在我想要基于开始时间的每小时数据,例如:-

DURATION                                             MIN
2018-07-12 10:29:00.000-2018-07-12 11:29:00.000      10
2018-07-12 11:30:00.000-2018-07-12 12:30:00.000      10

我怎样才能得到这个?(根据开始时间获取每小时的最小值)

标签: sql

解决方案


dateadd 函数允许您在日期中添加或减去天、小时、分钟。

考虑以下查询

select dateadd(HOUR, -1, getdate()) as time_added, 
       getdate() as curr_date 

-1 用于减去一小时(加负一小时)

上述查询的结果是:

timeadded                   curr_date

2018-07-12 13:25:31.603   2018-07-12 14:25:31.603 

而不是 getdate() 使用你的 startdate

在你的情况下,它会是

select min from table where time<@starttime and time> dateadd(HOUR, -1, @starttime)

推荐阅读