我有这样的事情:
SELECt *
FROM (
SELECT prodid, date, time, tmp, rowid
FROM live_pilot_plant
WHERE date BETWEEN CONVERT(DATETIME, '3/19/2012', 101)
AND CONVERT(DATETIME, '3/31/2012', 101)
) b
WHERE b.rowid % 400 = 0
仅供参考:在 where 子句中进行转换的原因是因为我的日期存储为 varchar(10),我必须将其转换为日期时间才能获得正确的数据范围。(我尝试了很多不同的东西,这很有效)
我想知道如何在这些选定的日期内每 4 小时返回一次我想要的数据。我大约每 5 秒收集一次数据(数据有一些中断) - 即数据不是在 2 小时内收集的,而是以 5 秒的增量继续收集。
在我的示例中,我只是对我的 rowid 使用了模数 - 语法有效,但正如我上面提到的,在某些时期没有收集数据,因此使用如下逻辑:如果你每 5 秒获取一次数据,然后再乘以 4 小时,你可以大约说中间有多少行是行不通的。
我的时间列是一个 varchar 列,格式为 hh:mm:ss
我的理想输出是:
| prodid | date | time | tmp |
| 4 | 3/19/2012 | 10:00:00 | 2.3 |
| 7 | 3/19/2012 | 14:00:24 | 3.2 |
如您所见,我可能有点偏离(以秒为单位) - 我更需要时间方面的近似值。
先感谢您。