당연히 해당 테이블에 등록한 시간 필드가 있겠죠?
CURRENT_TIMESTAMP라는 예약어가 있습니다. 현재 시간이 돌아오죠.
그러면 CURRENT_TIMESTAMP에서 등록된 시간값을 빼서 원하는 분만큼보다 같거나 작은 조건을 만들면 되는데..
SQL92 표준에 interval이라는 문법이 있는데, 이게 파이어버드에서는 아직 제대로 동작하지 않는 거 같습니다.
두 datetime을 빼면 interval 타입의 값이 나와야 하는데, 파이어버드에서는 소숫점이 포함된 실수로 나옵니다.
(이건 C++빌더나 델파이에서의 결과와 같습니다.)
소숫점 위의 값은 날짜이고, 아래는 하루를 초로 나눈 건데... 따라서 86400를 곱하면 초 카운트가 됩니다.
따라서, datetime 필드의 이름이 mydate라고 할 때, 10분 내에 등록된 레코드를 찾으려면 다음과 같이 쿼리하면 됩니다.
select * from 테이블이름 where (current_timestamp-mydate)*86400/60 <=10
그럼...
신동근 님이 쓰신 글 :
: 데이트타입 필드에서 조건으로 몇 분 이전 데이터만 추출하려고
: 쿼리를 하려구 하는데 어떻게 하면되는지
: 알려주시면 감사하겠습니다 ㅜㅜ
|