私は、次の列SQL文で特定の行に特定の条件を適用します
を持つテーブルがある(名前:varchar型)、(MyDateに該当:DATE)、(終了時刻:TIME)
私が取得しようとしています以下の条件に基づいて特定の行:
- MyDateに該当がある範囲
- MyDateに該当>日付(NOW())
- endTimeは>時間(NOW())内で、これは唯一に適用します「今日の」日付行
問題はendTimeにあります。たとえば、次のようなデータに
- りんご2011-02-01午前21時00分○○秒
- オレンジ2011-03-02午前10時00分00秒
- ブドウ2011-05-10 11:00考えます:00
クエリへの入力は
- 範囲であれば:(NOW())2011-01-01
- 2011-04-01に日付:2011 -01-01
- 時間(NOW()):
午前20時00分00秒は、クエリに
SELECT name FROM mytable
WHERE mydate BETWEEN '2011-01-01' AND '2011-04-01'
AND date >= DATE(NOW())
AND endTime > TIME(NOW())
クエリの結果のみ 'りんご' を考えてみましょう。しかし正しい結果は「リンゴ」と「オレンジ」です。 問題は条件:endTime> time(NOW())ですが、これは「今日の」日付行にのみ適用されます。
私の元のクエリが大きいので、私はUNIONにしたくないです。 条件を特定の行にのみ適用できる方法はありますか。
アイデアをいただければ幸いです。おかげさまで
ありがとうOMGポニー。 – metalhawk