Mysql timediff 与 min

标签 mysql

我正在查询以监控正在进行的和预期的文件上传。 这是我正在做的:

select time_to_sec(min(timediff(now(), f.SubmittedDate)))/60 FROM dbtable f WHERE f.Status = 'SUBMITTED';

现在,在 12 小时后,它的返回次数比应有的次数多 10 倍。它返回 6200 分钟,而不是 620 分钟。如果我这样做,它会起作用:

select time_to_sec(timediff(now(), max(f.SubmittedDate)))/60 FROM dbtable f WHERE f.Status = 'SUBMITTED'

我不明白其中的区别,为什么会这样?显然,最低时间差应该等于现在和最高日期之间的时间差。我是否遗漏了什么或者这是一个错误?

我的问题是我以这种方式设置了大量支票,编辑所有支票可能需要相当多的工作量。

感谢您的帮助!

最佳答案

我对此和您的代码进行了一些测试:

select time_to_sec(min(timediff(now(), f.SubmittedDate)))/60 FROM dbtable f WHERE f.Status = 'SUBMITTED';

需要:

select min(time_to_sec(timediff(now(), f.SubmittedDate)))/60 FROM dbtable f WHERE f.Status = 'SUBMITTED';

由于您没有像在第二个查询中那样使用“MAX”函数,因此您需要在“TIME_TO_SEC”之前调用“MIN”函数。

希望对你有帮助

关于Mysql timediff 与 min,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11335348/

相关文章:

mysql - 更新列时删除 mysql 行

mysql - 来自 2 个表的 SQL 语句

mysql - Sequelize - 模型和迁移

PHP从数据库中获取号码

php - 使用 MYSQL 的 UTF-8 插入查询在部署服务器上不工作

php - 将多维数组插入mysql

mysql - 使用 MySQL 返回包含日期但不包含年份的字符串之间的行

mysql - 获取mysql中一系列记录中的行位置

mysql - 如何将存储在引用表中的引用值插入到另一个表中?

mysql - 在一个函数中定义的全局变量不会在另一个函数中保留定义