最大タイムスタンプの 45 分前にすべてのレコードを返すクエリを作成したいと思います。
たとえば、最新のタイムスタンプを持つレコードは次のとおりです。
01.09.2013 11:00:00
今、私はからすべてのレコードを取得したいと思います
01.09.2013 10:15:00 to 11:00:00
最大タイムスタンプの 45 分前にすべてのレコードを返すクエリを作成したいと思います。
たとえば、最新のタイムスタンプを持つレコードは次のとおりです。
01.09.2013 11:00:00
今、私はからすべてのレコードを取得したいと思います
01.09.2013 10:15:00 to 11:00:00
with cte as
(select max(the_timestamp_field) the_timestamp_field
from test)
select
*
from
test,cte
where
test.the_timestamp_field between cte.the_timestamp_field - (1/24*.75)
and cte.the_timestamp_field
やります。
レコードの作成時間をどのように判断したいかによって、単純な場合も少し複雑な場合もあります。テーブルに作成時間を示す日付列がある場合、それは簡単です:
SELECT columns
FROM table
WHERE date_column BETWEEN TO_DATE ('01.09.2013 10:15', 'MM.DD.YYYY HH24:MI') AND
TO_DATE('01.09.2013 11:00', 'MM.DD.YYYY HH24:MI')
日付列がない場合は、SCN_TO_TIMESTAMP
( ORA_ROWSCN
) 疑似列を使用して作成時刻を特定できますが、この機能には またはそれ以降のバージョンが必要であることに注意してください10g
。