2016-10-30 5 views
-1

時間をHHMMとして分数で保存するアプリケーションがあります。MySQLを使用して2つのエントリ間の時間差を見つける必要があります。たとえば: 2つの数値の時間差を求める

SELECT (TIMESTAMPDIFF(HOUR,start,end)-breaks) AS Duration 
FROM table 

は正常に動作しますが、それらは、有効な時間ではありませんので、これはすべてのためにNULLを返します:

Start End Breaks 
0445 0825 030 

これは、私が使用してみました3.167時間

を返す必要があります。

私は最初に整数を日付スタンプに変換することを考えましたが、現時点では爆発のようなものを試すためのセパレータはないので、これを行う方法を理解することはできません。

これらの2つの違いを見つけて、ブレーク値を差し引くにはどうすればよいですか?

+0

有効な時間の例を表示してください。 – Ivan

+0

の要求されたソリューションが有効です。これは0000から2359の間の任意の時間に有効です。有効なエントリは0000から0059、0100から0159などです。 – bhttoan

答えて

0

時刻を操作していないとき(時間のように見えても)、時間機能を使用しないでください。

簡単な数学がこのトリックを行います。値を分単位の10進表記に変換し(小数点タイプを使用した場合:T % 60 + 60 * FLOOR(T/100))、必要に応じて値を単純に減算します((a - b)/60.)。

関連する問題