Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在sql查询中每15分钟提取一次数据_Sql Server - Fatal编程技术网

Sql server 在sql查询中每15分钟提取一次数据

Sql server 在sql查询中每15分钟提取一次数据,sql-server,Sql Server,因此,我可以每隔30分钟提取并分组数据。但我的问题是,为什么这个查询不每15分钟给我一次数据?我提供的脚本是一个更大的脚本的一部分,该脚本只是运行一个存储过程,它提供的时间戳只是localtimestamp。上面的脚本完成了所有工作 借用一下,假设我正确理解了你的问题,我建议如下: SELECT dateadd(MINUTE,datediff(MINUTE,-15,Time),15) AS Time, round(avg(Amount),1) AS Amount, r

因此,我可以每隔30分钟提取并分组数据。但我的问题是,为什么这个查询不每15分钟给我一次数据?我提供的脚本是一个更大的脚本的一部分,该脚本只是运行一个存储过程,它提供的时间戳只是localtimestamp。上面的脚本完成了所有工作

借用一下,假设我正确理解了你的问题,我建议如下:

SELECT dateadd(MINUTE,datediff(MINUTE,-15,Time),15) AS Time,
       round(avg(Amount),1) AS Amount,
       round(avg(Amount2),1) AS Amount2
INTO downt
FROM ee3
JOIN ee4 
     ON DownLine1=DownLine2 --Where Time Null
GROUP BY datediff(MINUTE, -15,Time)
ORDER BY time DESC;

SELECT *
FROM downt;

作为猜测,它不会每隔15分钟返回一次,因为数据不存在于表中。从你发布的内容来看,几乎没有任何人能够真正提供帮助。我们需要知道表结构和数据。没有这些,我们只能猜测。尝试将此链接作为一个很好的起点。我不能这样做,因为数据属于公司隐私。在我看来,我所提供的足以指出查询中的错误,因为我可以向您保证,我上面提供的查询确实做到了所说的。在查询运行之前存在的数据之间的唯一区别是时间是localTimeStamp,而amount和amount2只是valuesAsFloats。错误在于我在上面的查询中结合了dateadd(xx,datediff,xx)。我当然了解敏感数据。没有人会想要的。不,你提供的信息还不够。它与DATEADD无关。这将返回某些值。你想要的是更多的行。如果表中没有这些数据,则无法将其取回。也许您可以创建一个日历或时间表作为查询的基础表。如果没有一些细节,我们就没有什么可以处理的。这不起作用,但是我很感谢你的回应。问题仍在发生。但是我确实看到,第一个数据点出现在今天12:45,然后是今天1:00,但之后每隔30分钟增加一次。我的查询正在处理的主要数据是随机发生的。所以它的日期时间是从外部源获得ping的时间。
SELECT dateadd(minute, datediff(minute,0,Time) / 15 * 15, 0) AS Time,
       round(avg(Amount),1) AS Amount,
       round(avg(Amount2),1) AS Amount2
INTO downt
FROM ee3
JOIN ee4 
     ON DownLine1=DownLine2 --Where Time Null
GROUP BY dateadd(minute, datediff(minute,0,Time) / 15 * 15, 0)
ORDER BY time DESC;

SELECT *
FROM downt;