如何在两个date时间值之间使用MYSQL中的SQL进行相减并在几分钟或几秒钟内检索结果?

我想在MySQL中使用SQL来减去两个date时间值,这样我就可以得到以分钟或秒为单位的时间间隔。 有任何想法吗? 我想运行一个SQL查询,从一个已经login的数据库中获取使用情况,比如10分钟。

函数TIMEDIFF(expr1,expr2)返回expr1-expr2的值,TIME_TO_SEC(expr3)返回expressionexpr1的秒数。

请注意,expr1和expr2是date时间值,而expr3只是一个时间值。

检查此链接了解更多信息。

TIMESTAMPDIFF就像马蒂说的TIMEDIFF,只不过它以任何你想要的单位(秒,分,小时等等)返回两个date时间的差别。

例如,

SELECT TIMESTAMPDIFF(MINUTE,LogOutTime,LogInTime) AS TimeLoggedIn FROM LogTable 

会返回用户login的分钟数(假设你把这种东西存储在这样的表中)。

我会这样做 – 取现在的最后一个活动在10分钟内

 SELECT * FROM table WHERE last_activity >= DATE_SUB(NOW(), INTERVAL 10 MINUTE) 

您可以尝试将它们转换为Unix时间戳,并采取差异。


SELECT TIMESTAMPDIFF(MINUTE,LogOutTime,LogInTime)AS TimeLoggedIn FROM LogTable


如果这个例子使用了时间,那么这个例子就会毁了。 所以为了计算millitairy时间我不推荐它,因为它输出负值。