一个 mysql的sql 需要删除 staytime字段(类型 时间)  与现在 时间 相差5分的记录now()-staytime > 5 minute我开始 选用的是TIMEDIFF  但是发现无法 应用  》5 分这个条件
例如
> SELECT TIMEDIFF('2000:01:01 00:00:00',    ->                 '2000:01:01 00:00:00.000001');        -> '-00:00:00.000001'
这里不知道哦啊如何表达 》 5分的条件后来我用
staytime< subdate(now, INTERVAL 5 MINUTE);
可以 完成 想知道TIMEDIFF可以做吗 ? 或者还有其他方法?

解决方案 »

  1.   


    mysql> SELECT TIMEDIFF('2010-10-10 10:10:00','2010-10-10 10:15:00');
    +-------------------------------------------------------+
    | TIMEDIFF('2010-10-10 10:10:00','2010-10-10 10:15:00') |
    +-------------------------------------------------------+
    | -00:05:00                                             |
    +-------------------------------------------------------+
    1 row in set (0.05 sec)mysql> SELECT TIMEDIFF('2010-10-10 10:20:00','2010-10-10 10:15:00');
    +-------------------------------------------------------+
    | TIMEDIFF('2010-10-10 10:20:00','2010-10-10 10:15:00') |
    +-------------------------------------------------------+
    | 00:05:00                                              |
    +-------------------------------------------------------+
    1 row in set (0.00 sec)mysql>
      

  2.   


    mysql> SELECT minute(TIMEDIFF('2010-10-10 10:20:00','2010-10-10 10:15:00'));
    +---------------------------------------------------------------+
    | minute(TIMEDIFF('2010-10-10 10:20:00','2010-10-10 10:15:00')) |
    +---------------------------------------------------------------+
    |                                                             5 |
    +---------------------------------------------------------------+
    1 row in set (0.00 sec)mysql>
      

  3.   

    where staytime<now()-interval 5 minute应该如上这样,这样的话,还可以使用staytime上的索引。
      

  4.   

    感谢楼上  where staytime<now()-interval 5 minute  这个按照道理是 最好