gpt4 book ai didi

c# - 以特定时间间隔从数据库中获取值

转载 作者:行者123 更新时间:2023-11-30 21:02:17 25 4
gpt4 key购买 nike

我想在 C# 中以特定间隔从数据库中获取值,并且需要一个查询。这就是我的数据库的样子

Id   SensorId    Value        CreatedOn   ------------------------------------------------      1       8        33.5      15-11-2012  5:48 PM        2       5        49.2      15-11-2012  5:48 PM3       8        33.2      15-11-2012  5:49 PM  4       5        48.5      15-11-2012  5:49 PM  5       8        31.8      15-11-2012  5:50 PM 6       5        42.5      15-11-2012  5:50 PM 7       8        36.5      15-11-2012  5:51 PM 8       5        46.5      15-11-2012  5:51 PM 9       8        39.2      15-11-2012  5:52 PM 10      5        44.4      15-11-2012  5:52 PM 11      8        36.5      15-11-2012  5:53 PM 12      5        46.5      15-11-2012  5:53 PM 13      8        39.2      15-11-2012  5:54 PM 14      5        44.4      15-11-2012  5:54 PM ..      ..       .....     ...................

间隔以分钟为单位。所以,如果间隔是 10 分钟,那么我们需要 5:48、5:58、6:08 等处的值...

我试着用 while 循环来做这件事,但它会花费很多时间,因为我向数据库发出多个查询。

有没有办法在单个查询中获取数据?

最佳答案

您可以使用 datepart连同模数以获取匹配的行(例如,@interval = 10,@offset = 8):

SELECT * FROM table
WHERE datepart(minute, CreatedOn) % @interval = @offset

编辑

请注意,以上不是按间隔选择的一般解决方案。它将在小时(因此跨天)工作,时间间隔为 2、3、4、5 ...任何可分为 60 的分钟间隔。

如果您想使用 7 分钟这样的奇怪间隔,则必须定义间隔的开始时间并计算每行的总分钟数,包括小时/天。届时,您最好根据计算相关间隔的用户定义函数在表上创建一个索引计算列。

关于c# - 以特定时间间隔从数据库中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13619451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com