1

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

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'

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

我的问题是我以这种方式设置了大量检查,并且编辑所有这些检查可能是相当大的工作量。

谢谢你的帮助!

4

1 回答 1

4

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

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”函数。

希望这可以帮助

于 2012-07-06T08:55:55.127 回答