DBに下記のようなデータが存在しているとします。
No Start End Deta
─────────────────────────
001 2020-01-01 2020-01-02 aaa
002 2020-01-02 2020-01-03 bbb
003 2020-01-28 2020-01-29 ccc
004 2020-01-29 2020-01-30 ddd
この時、下記の条件でWHERE句を指定したとします。
現在時刻 ≧ Start
AND
現在時刻 ≦ End
しかし、このケースだと
現在時刻が 2020-01-29 00:00:01 の時にSQL実行した場合、
Noが 003 の行は条件の対象外になります。
これは現在時刻には時分秒の情報が存在するが、
DBには時分秒が00:00:00で登録されているためです。
これを解決するには下記のようにWHERE句を修正し、
現在時刻を日付までの情報で扱うことで判定できます。
TO_DATE(TO_CHAR(現在時刻),’YYYY/MM/DD’) ≧ Start
AND
TO_DATE(TO_CHAR(現在時刻),’YYYY/MM/DD’) ≦ End