私はこのようなものを持っています:
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) として格納されているためです。正しい範囲のデータを取得するには、datetime に変換する必要がありました。(いろいろ試した結果、これでうまくいきました)
選択した日付中に 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 |
ご覧のとおり、(秒単位で) 少しずれている可能性があります。時間に関しては、おおよその値が必要です。
前もって感謝します。