1

I've a problem using TIMEDIFF with two different date. The following query "should" return 00:04:51

mysql> SELECT TIMEDIFF(TIME('2013-07-21 00:04:50'),TIME('2013-07-20 23:59:59'));
+-------------------------------------------------------------------+

|TIMEDIFF(TIME('2013-07-21 00:04:50'),TIME('2013-07-20 23:59:59')) |

+-------------------------------------------------------------------+

| -23:55:09                                                         |

+-------------------------------------------------------------------+

1 row in set (0.00 sec)

Any tips? Which is the easiest way? Thank you

4

5 に答える 5

2

日付を時間値のみにキャストしているため、これは正しい結果です (オペランドの意味のある部分を取り除いています)。結果に日付の影響を含めたい場合は、DATE_DIFF()関数を使用するか、TIME() 関数で日付を削除しないでください。

于 2013-08-09T14:21:18.180 に答える
2

タイムスタンプを Time を使用するように変換しないでください。値を次のように入力してください

TIMEDIFF('2013-07-21 00:04:50','2013-07-20 23:59:59')

.Mysql 関数MysqlDate 時間関数からさらに確認する

B/c Time は、タイムスタンプから時間のみを抽出します。だから実際にあなたはやっています。

TIMEDIFF('00:04:50','23:59:59');
于 2013-08-09T14:26:16.727 に答える
0

これを試して:

SELECT TIME(TIMEDIFF('2013-07-21 00:04:50','2013-07-20 23:59:59'));
+-------------------------------------------------------------------+

|TIME(TIMEDIFF('2013-07-21 00:04:50','2013-07-20 23:59:59'))
于 2013-08-09T14:23:57.840 に答える