记录第一次更新列时的时间

时间:2013-11-07 17:56:38

标签: sql-server sql-server-2005

  1. 在SQL Server 2005中,我想记录用户登录后online列首次从1更改为0的当前时间。online列每5-10分钟更新一次(这意味着,我的网络应用每隔5-10分钟将online列更新为1,直到用户登录网站为止。我想仅在列第一次更改为1时记录时间。

  2. 我必须从上面步骤1记录的时间开始每隔一小时更新一次reputation列,直到同一用户保持登录状态,并在{{1}后立即停止更新reputation }}更改为online

  3. 怎么做?我对构建查询和触发器的知识非常薄弱。

1 个答案:

答案 0 :(得分:0)

就个人而言,我会通过在线旁边添加第二位列来解决这个问题,以及时间记录或类似内容。

基本上逻辑看起来像这样。

Update users set online = 1

update users set onlinesince = getdate()
where online = 1 and timerecorded = 0

update users set reputation = reputation + 1
where online = 1 and timerecorded = 1

当你开始设置online = 0时,请确保设置两个标志。