表结构如下CREATE TABLE `online_sl` (
  `online_id` int(11) NOT NULL auto_increment,
  `char_id` int(11) NOT NULL default '0',
  `logincount` mediumint(9) NOT NULL default '0',
  `online_point` int(11) NOT NULL default '0',
  `login_date` datetime NOT NULL default '0000-00-00 00:00:00',
  `Logout_date` datetime NOT NULL default '0000-00-00 00:00:00',
  `ask` varchar(255) default NULL,
  `answer` varchar(255) default NULL,
  PRIMARY KEY  (`online_id`),
  KEY `userid` (`char_id`)
) ENGINE=MyISAM AUTO_INCREMENT=13 DEFAULT CHARSET=latin1;我想在用户退出的时候 能计算一下这个用户的上线时间 
`char_id` 人物ID
logincount` 次数
`online_point`  在线点数
 `login_date`  登陆时间
`Logout_date`  离开时间
如果是按照 30分钟一点 在用户退出的时候计算出在线点数 并保存在  `online_point`  在线点数 里面

解决方案 »

  1.   

    这样的流程可以在MYSQL 中用一个存储过程写出来吗?
      

  2.   

    我想问问 MYSQL 中有没有这样的函数 可以用离开始见减去登陆时间 计算出多少分钟啊 
      

  3.   

    替换一下。select time_to_sec(timediff('2008-12-23 20:52:32','2008-11-23 20:52:32'))/60 as minute;
      

  4.   

    呵呵 ,这和存储过程没有关系,是用程序和sql语句实现的。
    客户端每10分钟向服务端发数据,服务端判断,该客户登陆多长时间(时间要以服务端的数据为准),每到能被30整除的数据时时,向服务端写数据
    update table set aa = aa+1 where ....
    就这样。