2017-09-09 9 views
1

SQLiteテーブルからタイムスタンプ付きのデータを返し、5分ごとにタイムスタンプを1つ選択する必要があります。このテーブルには、SQLiteのタイムスタンプ文字列(1分に1つ)があり、分単位で丸められます。SQLiteで5分ごとにエントリを選択する方法

つまり、「分%5 = 0」のようなWHERE条件が必要です。しかし、私はそれをするように見えないし、私は何が間違っているのか分からない。

私はまた、最後の24時間からのタイムスタンプをフィルタリングしています:dt > datetime('now','-1 day')。それが動作します。

SELECT dt, y FROM mytable WHERE dt > datetime('now','-1 day') AND strftime(dt, '%M') % 5 = 0 ORDER BY dt 

と::

SELECT dt, y FROM mytable WHERE dt > datetime('now','-1 day') AND cast(strftime(dt, '%M') as int) % 5 = 0 ORDER BY dt 

と:

は、これまでのところ私が試した

SELECT dt, y FROM mytable WHERE dt > datetime('now','-1 day') AND mod(minute(dt),5) = 0 ORDER BY dt 

を...そしてこれらの様々な組み合わせ。

私は、SQLiteは分()をサポートしていないと思うので、最後のものは機能しません。 algridによって言及として

+0

のstrftimeは形式をとります。 – algrid

+0

ありがとうございます!以下は、動作中のSQLiteクエリです: 'SELECT dt、y FROM mytable WHERE dt> datetime( 'now'、 ' - 1 day')AND strftime( '%M'、dt)%5 = 0 ORDER BY dt' – somanyquestions

答えて

1

は、strftime() functionは異なる順序でそのパラメータを取ります。それは第二として、最初の引数とtimestringだとして

> select strftime('12:34:56', '%M'); 

> select strftime('%M', '12:34:56'); 
34 
関連する問題