検索条件のちょっとした違い

ちょっとはまったので。

  1. where to_char(POST_DATE, 'YYYYMMDDHH24') = '2004102405'
  2. where POST_DATE = to_date('2004102405', 'YYYYMMDDHH24')

ぱっと見、どちらも同じ検索条件に見えたが

  1. 2004-10-24 05:00:00〜2004-10-24 05:59:59
  2. 2004-10-24 05:00:00 だけ

と、範囲が違った。

1.は圧倒的に遅いので、以下のように修正。


where POST_DATE >= to_date('2004102405', 'YYYYMMDDHH24')
and POST_DATE < to_date('2004102405', 'YYYYMMDDHH24') + 1/24