そのタイムスタンプの日付に関係なく、タイムスタンプが2つの時間の間にあるかどうかを判断する方法を探しています。たとえば、タイムスタンプの時間が '00:00:00.000' (真夜中) と '01:00:00.000' (午前 1 時) の間にある場合、特定の日付に関係なくその行を選択したいと思います。
to_char
と関数でさまざまなバリエーションを試しましたが、to_date
エラーが発生し続けます。Informix から来た Oracle は、はるかに複雑に見えます。
私が試した「正しい」(と思う)に最も近いものは次のとおりです。
SELECT *
FROM my_table
WHERE SUBSTR(TO_CHAR(my_timestamp), 10) > '00:00:00.000'
AND SUBSTR(TO_CHAR(my_timestamp), 10) < '01:00:00.000'
...しかし、何も機能しません。ヒントやコツはありますか?
私はそれを行う方法を見つけましたが、もし存在するなら、もう少しハッキーなものを好むでしょう。
SUBSTR(SUBSTR(TO_CHAR(my_timestamp), 11), 0, 12) > '01.00.00.000'