2011-09-04 134 views
0

即時通訊嘗試執行sql查詢,將檢查是否有一段時間(如10秒)從上次時間戳更新過去,如果是,則更改其他表。時間戳記sql查詢

我的問題是如果ther是否有任何時間戳條件運算符可以檢查?例如, <,>,=?

(我知道我可以在不同的查詢做到這一點,但我嘗試做它在1個查詢)..

像這樣的事情

   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分00秒

所以最後如果人上次看到的會超過10秒,他會去連接= false。

回答

2

對於每個數據庫,語法會稍有變化。以下是使用SQL Server的示例:not exists

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

@dan:嘗試'TIMESTAMPADD(SQL_TSI_SECOND,-10,CURRENT_TIMESTAMP)'? – Andomar