2011-09-04 3 views
0

메신저 내 테이블에서 마지막 타임 스탬프를 업데이트 한 후 (예 : 10 초) 다른 테이블이 있는지 확인하는 sql 쿼리를 실행하려고합니다.timestamp sql query

제 질문은 ther이 이것을 확인할 수있는 타임 스탬프 조건 연산자 인 경우입니까? 예 : <,>, =? 이

   UPDATE Person SET isconnected=false 
      where person.email=(select from imalive where timestamp<10). 

사람처럼

(내가 다른 쿼리에서 그것을 할 수 있다는 것을 알고,하지만 난 한 쿼리에서 그것을 할 노력하고있어) ..

뭔가 :

이메일 : [email protected]

이름 : 단

연령 : 20

으로 isAlive :

이메일 : [email protected]

lastseen : 2011-09-04이 사람이 마지막에 따라서 21시 27분 0초

경우 마지막으로 10 초 후에 isconnected = false로 이동합니다.

답변

2

구문은 데이터베이스마다 약간 변경됩니다. 다음은 not exists을 사용하는 SQL Server의 예입니다.

update Person 
set  IsConnected = 0 
where IsConnected <> 0 
     and not exists 
     (
     select * 
     from IsAlive 
     where Person.email = IsAlive.email 
       and IsAlive.timestamp > dateadd(s,-10,getdate()) 
     ) 
+0

먼저 감사합니다. 하지만 메신저 hsql을 사용하여 내가 그것을 지원하지 않는지 확인 dateadd :-(. – dan

+0

@ 단 :'TIMESTAMPADD (SQL_TSI_SECOND, -10, CURRENT_TIMESTAMP)'를 시도해보십시오. – Andomar