2016-10-19 2 views
0

SQL에서 특정 시간 간격 내에 3 초마다 데이터를 취해야한다는 요구 사항이 있습니다. 나는 누군가가 시나리오 하지만 난 매 3 초마다 데이터를 필요할 때만두 날짜 사이의 매 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') 
    ) 
+1

코드 샘플 내에 SQL 쿼리를 올바르게 작성하십시오. – Jagrati

+0

나는 이미 편집을 제안했다. 승인 대기 중. –

+0

이 오라클입니다 ('TO_DATE') – Drew

답변

0

이 당신에게 지난 3 초까지 데이터를 선택 모든 값을 반환이 내 선택 쿼리에 나를 도울 수 있도록 SQL에 새로운 오전. 당신은 그 아이디어가 있기를 바랍니다.

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

귀하의 즉각적인 회신을 보내 주셔서 감사합니다. 오라클은 dateadd 함수에 상응합니까? – naveena

+0

@naveena 오, 이건 오라클 태그입니다, 죄송합니다, 잘 모르겠습니다. SQL- 서버를 사용하고 있습니다 – krtek

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하는 일일 빼기"를 의미 감안할 때, 당신은의 수를 유도 할 수있다 몇 초 산술 연산이 필요합니다.

+0

시간 내 주셔서 감사합니다. 특정 시간 간격마다 3 초마다 데이터가 필요합니다. – naveena

+0

나에게 그렇게 명확하지 않습니다. "매 3 초"란 무엇을 의미합니까? 3 초마다 실행되는 절차가 필요합니까? 또는 지난 3 초 동안 데이터를 반환하는 단일 쿼리? 질문을 명확히하기 위해 몇 가지 샘플 데이터와 원하는 결과를 게시하십시오. – Aleksej

+0

테이블에 두 번째 데이터가 각각 있습니다. 2016년 7월 12일 오전 12시 11분 43초 \t 4961.31 \t 2016년 7월 12일 오전 12시 11분 42초 \t 4961.31 \t 2016년 7월 12일 오전 12시 11분 41초 \t 4961.31 \t 2016년 7월 12일 12:11:40 AM \t이 내 선택 검색어에 5000.20을 (를) 선택하셔야합니다. 7/12/2016 12:11:43 AM \t & 7/12/2016 12:11:40 AM 특정 시간에 7/12/2016 12:10:00 ~ 7/12/2016 12:12:00 AM – naveena

관련 문제