1

進行中のファイルのアップロードを監視するためのクエリを作成しています。これが私が作っているものです:

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

さて、12時間後、これは本来の10倍以上戻ってきます。620分ではなく、6200分を返します。私がこのようにそれをするならば、それは働きます:

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';

2番目のクエリのように「MAX」関数を使用していないため、「TIME_TO_SEC」の前に「MIN」関数を呼び出す必要があります。

お役に立てれば

于 2012-07-06T08:55:55.127 に答える