0

mysqlの結果から、次のようなものが得られます

last_updated_rta    gmt_timestamp        last_record_update       diff
  02:14:58       2013-02-24 02:15:37    2013-02-23 19:15:37      00:00:39
  01:01:00       2013-02-24 01:30:34    2013-02-23 18:30:34      00:29:34
  23:59:59       2013-02-24 00:29:33    2013-02-23 17:29:33     -23:30:26
  00:00:00       2013-02-24 00:29:33    2013-02-23 17:29:33      00:29:33

'diff'列は、timediff計算です。

         TIMEDIFF(TIME(gmt_timestamp),TIME(last_updated_rta)) AS diff

これが問題です。「diff」列の「-23:30:26」の値に注意してください。ネガティブなことはしてはいけません。これは、last_updated_rtaの時刻が午前0時(00:00:00)より前で、gmt_timestampの日付が翌日である場合にのみ発生します。問題の一部は、「last_updated_rta」列の日付値が取得されないことだと思います。時間しかありません。

これを説明するためにこの数式を修正して、負の値を取得しないようにするにはどうすればよいですか?

前もって感謝します、

  • d-
4

2 に答える 2

1

last_updated_rta が常に gmt_timestamp より前であると仮定する、last_updated_rta の日付は gmt_timestamp と同じであると仮定できます。last_updated_rta がたまたまだった場合(diff が負になる)、その日付は前日であることがわかります

于 2013-02-24T22:13:58.713 に答える
0

負の値が得られないことがわかっている場合は、結果が負かどうかをテストし、負の場合は diff の値に 1 日を追加します。

于 2013-02-24T22:06:27.080 に答える