想要从今天的特定时间运行查询到最后n小时

时间:2016-02-03 14:51:35

标签: oracle

您好我想运行一个查询,该查询从昨天上午7:00到昨天下午3:00提取数据。

我在下午运行此查询。

以下查询从我运行查询时提取数据。我希望数据从上午7点开始倒退。

select *
from NOTES
where creation_date >= sysdate- interval '17:15' hour to minute       

我将不胜感激任何帮助。

2 个答案:

答案 0 :(得分:0)

在Oracle中尝试:

SELECT * 
  FROM NOTES 
 WHERE creation_date BETWEEN to_timestamp(to_char(sysdate) || ' 00:00:00', 'dd-Mon-yy hh24:mi:ss') - interval '9' hour
   AND to_timestamp(to_char(sysdate) || ' 00:00:00', 'dd-Mon-yy hh24:mi:ss') + interval '7' hour;

在MySQL中试试这个:

SELECT *
  FROM NOTES
 WHERE creation_date >= (concat(current_date(), ' 00:00:00') - interval '09:00' hour) 
   AND creation_date <= (concat(current_date(), ' 00:00:00') + interval '07:00' hour);

答案 1 :(得分:0)

尝试此作为最佳

对于Oracle

SELECT * 
   FROM NOTES 
  WHERE creation_date BETWEEN trunc(sysdate) - INTERVAL '9' HOUR 
                          AND trunc(curdate) + INTERVAL '7' HOUR;

对于MySQL

 SELECT * 
   FROM NOTES 
  WHERE creation_date BETWEEN curdate() - INTERVAL 9 HOUR 
                          AND curdate() + INTERVAL 7 HOUR;

如果您需要详细信息 - 请询问。