1

我的示例表看起来像这样..

Primary_Key  || Start_Time || End_Time || Value

1 || 24-FEB-13 18:00:00 || 24-FEB-13 19:00:00 || 6

这些列的数据类型是

Primary_Key --   Int  
Start_Time  ---  TimeStamp  
End_Time    ---  TimeStamp  
Value       ---  Int 

现在,我想在当前时间的 60 分钟内获取表中具有 End_Time 值的所有记录?

4

4 回答 4

1

尝试这个...

SELECT * FROM yourTable
WHERE end_time >= CURRENT_TIMESTAMP - NUMToDSInterval(1, 'HOUR')

这应该适用于 DATE 和 TIMESTAMP 以及 TIMESTAMP WITH TIME ZONE 值。

于 2013-02-25T20:06:52.590 回答
0

这应该有效:

select *
from sample s
where CURRENT_TIMESTAMP - end_time <= 1/24.0 and CURRENT_TIMESTAMP >= end_time
于 2013-02-25T19:51:28.703 回答
0

尝试这个

select * from yourtable
WHERE (sysdate - End_Time) * 1440 between 0 and 60
于 2013-02-25T19:53:16.650 回答
0

您可以试试这个 - 在 your_start_date 和 your_start_date + INTERVAL '60' MINUTE 之间选择您的数据:

SELECT SYSDATE start_dt, (SYSDATE + INTERVAL '60' MINUTE) end_dt 
  FROM dual
/

SELECT * FROM
(
SELECT  to_date('24-FEB-13 18:00:00', 'DD-MON-YYYY HH24:MI:SS') your_start_date
       ,(to_date('24-FEB-13 18:00:00', 'DD-MON-YYYY HH24:MI:SS') + INTERVAL '60' MINUTE) your_end_dt 
 FROM dual
)
/
于 2013-02-25T20:53:21.520 回答