2016-05-09 4 views
0

すべてのスクリプトで、今日の日付(今日の午前12時)よりも遅く、最後の日(午前12時)よりも長いタイムスタンプを持つ行を私に与えるようOracleに問い合わせる必要があります。 私はすでに次のスクリプトが出ている:oracle:日付が可変のクエリ・タイムスタンプ

WHERE DAILY_OPEN_POSITIONS.OPEN_TIMESTAMP <= (SELECT SYSTIMESTAMP FROM DUAL) 
AND DAILY_OPEN_POSITIONS.OPEN_TIMESTAMP >= (SELECT SYSTIMESTAMP - INTERVAL '2' DAY FROM dual) 

が、それは午前12時ではなく、むしろ現在の時刻から開始していない行を与えるので、これは、私がしたい正確に何ではありません。

私のクエリはに制限されますので、私は一緒に変数日付(毎日日付)と、一定時間(午前12時)を混合する方法を探しています

:あなたがアクセスするサブクエリを必要としない

WHERE DAILY_OPEN_POSITIONS.OPEN_TIMESTAMP <= (today's date started at 12 am) 
AND DAILY_OPEN_POSITIONS.OPEN_TIMESTAMP >= (yesterday's date started at 12 am 
+0

[Oracle:昨日からのみレコードを選択するにはどうすればいいですか?](http://stackoverflow.com/questions/1574565/oracle-how-can-i-select-records-only-from-yesterday) –

答えて

3

機能。私はあなただけtrunc()をしたいと思う:

WHERE DAILY_OPEN_POSITIONS.OPEN_TIMESTAMP <= trunc(SYSTIMESTAMP) AND 
     DAILY_OPEN_POSITIONS.OPEN_TIMESTAMP >= trunc(SYSTIMESTAMP - INTERVAL '2' DAY) 

しかし、私はそれが第二の条件で「1」の日であるべきだと思います。

+0

はい、それは1日でなければなりません。しかし、スクリプトは00:01に実行され、区間-1は最終日を指しません。これは主な質問ですが、00から開始され、前の日付が0 – Sam

+0

で開始されたこの日付でクエリを実行するよう明示的に言えるでしょうか?12:01 am –

+0

で動作するはずですが、昨日の午前12時01分。私はそれが昨日の12時から今日の12時までであることを望みます。 – Sam

関連する問題