如上 表中 usertime字段记录用户登录的时间
那我想查出表中
+----------+---------------------+------+
| username | usertime            | type |
+----------+---------------------+------+
|          | 2009-10-15 09:48:12 | 0    | 
| 456      | 2009-10-14 20:30:07 | 1    | 
| 789      | 2009-10-14 20:30:32 | 2    | 
| 99       | 2009-10-15 10:36:55 | 1    | 
| 333      | 2009-10-15 10:39:38 | 1    | 
| 888      | 2009-10-15 10:34:11 | 0    | 
+----------+---------------------+------+于现在时间差别在10分钟以上的用户。
小弟的sql语句是这样的SELECT * FROM serinfo WHERE MINUTE(NOW()) - MINUTE(usertime) > 10;
可是别的还好可是用户 456 和用户 789 老是检测不出来呀
有什么方法能获取10分钟以前登录的用户呀?

解决方案 »

  1.   

    SELECT * FROM serinfo WHERE unixtime_format(NOW()) - unixtime_format(usertime) > 600
      

  2.   

    minute只是返回分钟
    UNIX_TIMESTAMP返回一个Unix时间戳记(从'1970-01-01 00:00:00'GMT开始的秒数)。SELECT * FROM serinfo WHERE UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(usertime) > 600
    上面的写错了.
      

  3.   


    SELECT * FROM serinfo WHERE unix_timestamp() - unix_timestamp(usertime) > 600;
      

  4.   

    SELECT * FROM serinfo WHERE unixtime_format(NOW()) - unixtime_format(usertime) > 600