dポイントプレゼントキャンペーン実施中!

お世話様です。
SQLite3を使い、0秒、30秒毎にデータを獲得しています。
通常は1日2880レコード作成するのですが、諸事情で歯抜けになる場合があります。現状全件取り込んで歯抜けを確認しているのですが、
SQL文を用いてデータが獲得できなかった(レコードが存在しない)時刻を、サクっと獲得できるものでしょうか?

A 回答 (3件)

#2です



>データ獲得間隔が変わる場合があります

データ獲得間隔で割った view(クエリ)を介在させては?

試してみました。30間隔の場合
SELECT [time]/30 AS c
FROM 5824933sampling;

を介在させて

SELECT [5824933check].id, [5824933div].c
FROM 5824933check LEFT JOIN 5824933div ON [5824933check].id = [5824933div].c
WHERE ((([5824933div].c) Is Null));

当然のことながら、テーブル名やフィールド名は試験用に適当な(仮の)ものです。間隔が変わるごとに view を、動的に変化させる。
    • good
    • 0
この回答へのお礼

回答ありがとうございます

Viewって機能を調べてみます!
仮のものとは思いますが、5824933っていうのは何か意味があるのでしょうか?

お礼日時:2010/04/17 12:32

30秒置きに時刻の書き込まれた2880レコードからなるチェック用テーブルを作成し、これと当該テーブルをleft join で繋いで

,nullになるレコード(時刻)を集めては?

この回答への補足

回答ありがとうございます。
0,30,60,90...86370 と データの秒換算とを比較するということですね。

なるほど、テーブルを作成すれば良いですね。
ただ・・・データ獲得間隔が変わる場合があります。情報不足でした、せっかくお答えいただいたのにすみません。

獲得間隔が変わるとなれば全行とってきてから確認するほうが
いいのかもしれませんね。

補足日時:2010/04/14 14:10
    • good
    • 0

current_timestamp で現在日時を文字列として返すコマンドです。


これをselect文の中に埋め込んでみてはいかがでしょう。

この回答への補足

回答ありがとうございます。
SELECT文に現在時刻を埋め込む。。。
できればもう少しヒントをお願いします。

補足日時:2010/04/14 14:06
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!