oracle:查询具有可变日期的时间戳

oracle: query timestamp with variable dates

在我的所有脚本中,我想查询 Oracle 以提供时间戳小于今天日期(今天的日期是上午 12 点)并且大于最后一天的时间戳的行(上午 12 点) 我已经想出了以下脚本:

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 

您不需要子查询来访问函数。我想你只是想要 trunc():

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

不过,我觉得第二种情况应该是'1'天。