私は次のようにSQLiteのテーブルを持っている:SQLite:時刻に基づいて行を選択しますか?
+-----------+-------+
| StartTime | Name |
+-----------+-------+
| 08:00:00 | zone1 |
| 13:00:00 | zone2 |
| 17:30:00 | zone3 |
| 22:00:00 | zone4 |
+-----------+-------+
私は現在の時刻に基づいて行を返します。クエリを記述しようとしています:
CurrentTimeを、それが返されます午前8時30分である場合CurrentTimeをは午後4時40分である場合ZONE1 それはCURRENTTIMEが午前4時01分であれば、それはゾーン4
を返しますZONE2 を返し、そうで...
は、これまでのところ、私はいくつかの運を持っていたではなく、私は
SELECT * FROM table WHERE StartTime >= time('now', 'localtime')
ORDER BY StartTime LIMIT 1;
を望んでいた、まさに私は、上記の文のいくつかのバリエーションを試してみたが、どれも私が後だ結果を返しません。
ありがとうございます!
はい、追加フィールドを追加しないようにしようとしています。ゾーンが重複することなくゾーンの開始時刻を定義するだけであれば、ユーザーがテーブルに行を追加/削除する方が簡単です。 – LaLeX
@LaLeX:クエリーを容易にするために必要な余分な列を保持するビューを構築できます。また、深夜過ぎのセクションでは、実際のゾーンがない場合は分割が必要な場合があります(他の分割時間を選択すると同じ問題が発生することもあります)。シームがあります)。また、終了時刻を終了後の瞬間とし、 '<'をリレーションとして使う方が簡単かもしれません。そうすれば、より少ない時間で算術演算を行うことができます。 –