在2个日期之间选择每3秒数据行

时间:2016-10-19 06:43:24

标签: oracle date

我要求在SQL中的特定时间间隔内每3秒获取一次数据。我是SQL的新手,所以任何人都可以帮助我完成这个场景 这是我的选择查询,它返回所有值,但我只需要每3秒钟一次数据

SELECT ton_nbr 
FROM 
    icr_file_interface 
WHERE 
    (
        reading_dttm BETWEEN
        TO_DATE(concat('2016-10-19',to_char(0930)),'yyyy-mm-dd HH24MISS')
        AND TO_DATE(concat('2016-10-19',to_char('0945')),'yyyy-mm-dd HH24MISS')
    )
    AND
    (
        ton_nbr BETWEEN 
        (SELECT value FROM text_para WHERE para_cd='ICR_ST_RNG') 
        AND (SELECT value FROM text_para WHERE para_cd='ICR_ED_RNG') 
    )

2 个答案:

答案 0 :(得分:0)

这会在最近3秒之间选择您的数据。希望你明白了。

select ton_nbr 
from   icr_file_interface 
where  reading_dttm between dateadd(ss, -3, getdate()) and getdate() ;

答案 1 :(得分:0)

如果您只需要从日期中减去3秒,则可以使用以下内容:

SQL> select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss'),
  2         to_char(sysdate - 3*1/24/60/60, 'yyyy-mm-dd hh24:mi:ss')
  3  from dual;

TO_CHAR(SYSDATE,'YY TO_CHAR(SYSDATE-3*1
------------------- -------------------
2016-10-19 09:38:17 2016-10-19 09:38:14

鉴于sysdate -1表示“将一天减去sysdate”,您可以通过算术运算得出所需的秒数