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'天。
在我的所有脚本中,我想查询 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'天。