はじめまして。
VB6.0 SP5を使用しております。
[日時]Fieldを見てちょうど10秒間隔(一定間隔)のデータのみを抽出する方法
について悩んでおります。
全データをループして、1レコード前の日時との間隔が10秒かどうか判断する。
という方法をとっていましたが、時間がかかりすぎていました。
それで、
Where条件で、日時 IN (Date1, Date2, Date3,…)
という方法に変えてみたのですが、あまり速度は向上しません。
良い方法を、どなたかご存知ないでしょうか。
日時フィールドに実際に入っているデータの書式が解らない
ので、なんとも言えませんが・・・
10秒間隔のデータと言う部分ですが、差が10秒と言うのと、
秒の位が『x0』となっている、『ゼロ』のデータを取得する
と言うのに、読み替えたらいけないのでしょうか?
要は秒のデータを抽出して10との余りがゼロのデータと言う
ことです。
以上。
説明不足で申し訳ありません。
10秒だけではなく、
指定された間隔(30秒、1分、15分、1時間といった間隔)
でも抽出できるようにしたいのですが...。
データベースの種類は何ですか?
Access?
それと抽出条件は、指定時間との間隔が10秒単位とかそういうことで良いんでしょうか?
例えば2004/10/12 12:30:00との間隔が10秒単位のデータなら
Where((datediff("s", [日付], #2004/10/12 12:30:00) mod 10) = 0)
で取得出来ます。
Where((datediff("s", [日付], #2004/10/12 12:30:00#) mod 10) = 0)
後ろの#が抜けてました(^^;
nanashi様
お世話になります。
使用するデータベースは、SQLServerです。
nanashi様
Accessでは動きました!ありがとうございました!!
ただ、SQLServerでは構文エラーになってしまいます。
以下の構文です。
Where((DateDiff(second,日付,convert(datetime,'2004/10/12 12:30:00',102)) mod 10) = 0)
解決致しました!!
どうもありがとうございました。
ツイート | ![]() |