MYSQL中如何计算时差
我有一个Rails应用程序,它使用MYSQL作为数据库。在某些情况下,我必须从表中删除所有记录,该表在当前时间前2小时存储 我的问题是:MYSQL中如何计算时差,mysql,Mysql,我有一个Rails应用程序,它使用MYSQL作为数据库。在某些情况下,我必须从表中删除所有记录,该表在当前时间前2小时存储 我的问题是: DELETE FROM TABLE_NAME WHERE (NOW() - created_at) > 7200; 这里create_at是datetime列类型。以“2012-12-04 06:39:44”格式存储值 我的问题是,即使记录创建时间仅为40到50分钟并被删除,上述查询仍会获取记录。唯一的问题是记录在创建时达到40到50分钟后被删除 谁能
DELETE FROM TABLE_NAME WHERE (NOW() - created_at) > 7200;
这里create_at是datetime列类型。以“2012-12-04 06:39:44”格式存储值
我的问题是,即使记录创建时间仅为40到50分钟并被删除,上述查询仍会获取记录。唯一的问题是记录在创建时达到40到50分钟后被删除
谁能纠正我的疑问。我想要MySQL解决方案。请帮助我如果要删除恰好在2小时前创建的记录,您可能需要此文件:
DELETE FROM TABLE_NAME WHERE created_at = NOW() - INTERVAL 2 HOUR
DELETE FROM TABLE_NAME WHERE created_at < NOW() - INTERVAL 2 HOUR
或者,这将删除2个多小时前创建的所有记录:
DELETE FROM TABLE_NAME WHERE created_at = NOW() - INTERVAL 2 HOUR
DELETE FROM TABLE_NAME WHERE created_at < NOW() - INTERVAL 2 HOUR
DELETE FROM TABLE_NAME,创建位置为
试试这个:
DELETE FROM TABLE_NAME WHERE TIMEDIFF(NOW(),created_at) < '02:00:00';
从TIMEDIFF(NOW(),创建时间)所在的表名称中删除<02:00:00';
试试:
DELETE FROM TABLE_NAME WHERE created_at我知道您想删除在一段时间内创建的所有记录。因此,您不应该对减法运算应用“大于”运算符。相反,您应该尝试指定适当的时间范围
您还可以查看timediff函数
很抱歉,我无法为您发布正确的声明,因为我手头没有mysql服务器。您在同一个表达式中混合了不同的数据类型。谢谢Fthiella,让我试试看,让你知道我会试试看,让你知道在我的情况下,我现在已经应用了interval()。这使得在列中创建的_保持不变,所以它可以使用索引更快地执行删除。