2017-03-21 13 views
0

私は2つの時間フィールド間の時間差を計算しようとしています。フィールドは日付のない時間なので、timestampdiffは使用できないので、timediff()またはsubtime()を使用しています。それらの唯一の問題は、2回目の時間が最初の時間よりも短い場合は、私にとって負の値timediffを返します。私はそれが同じ日の時間として時間を取っていることを理解しますが、それは常に前方に時間を計算する動作を得るための方法はありますか?たとえば、私は23:00:00と07:00:00です。 timediff('07:00:00','23:00:00')は、23:00が07:00より大きいため、負の値を返しますが、8時間を返したいと思います。私はそれを行うことができる方法はありますか?MYSQL時差

答えて

1

あなたはif文でそれを達成することができます:最初の日付が第二よりも小さい場合

select if(dateA > dateB, 
      timediff(dateA, dateB), 
      addtime(timediff(dateA, dateB), '24:00:00.000000')) 

この方法では、あなたは違いに24時間を追加します。

+0

thx、うまくいきます – ilyass