SELECT ETA,STA FROM `Schedule` WHERE `Num`="5567";
2013-08-26 18:37:00 2013-08-26 18:30:00
SELECT DATEDIFF(ETA,STA) FROM `Schedule` WHERE `Num`="5567";
0
結果が 7 (分) ではなく 0 になるのはなぜですか?
DATEDIFF は日数で結果を返します。
SELECT HOUR (ETA - STA) FROM `Schedule` WHERE `Num`="5567";
時差の代替。
TIME_TO_SEC
MySQL関数を使用してこれを行うことができます。
サンプル
SELECT (TIME_TO_SEC(ETA) - TIME_TO_SEC(STA))/60 AS `minutes`
TIMEDIFF 関数を使用する
SELECT TIMEDIFF(ETA,STA) FROM `Schedule` WHERE `Num`="5567";
分単位の差を計算する方法については、このスレッドを参照してください: 2 つの日付間の時間差を分単位で計算する
DATEDIFF
差額を日数で返します!
ドキュメントから: DATEDIFF() は、ある日付から別の日付までの日数で表される expr1 – expr2 を返します。expr1 と expr2 は、日付または日付と時刻の式です。値の日付部分のみが計算に使用されます。
mysql> SELECT DATEDIFF('2007-12-31 23:59:59','2007-12-30');
-> 1
SELECT (TIMEDIFF(ETA,STA)) FROM SCHEDULE は、フォーマットされた分でそれを与え、 00:07:00 を返します
SELECT TIME_TO_MIN(TIMEDIFF(ETA,STA)) FROM SCHEDULE は 420 を返します
(7 * 60 秒 = 420)