2013-08-26 6 views
-1
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

Почему результат равен 0 вместо 7 (то есть минут)?

+0

[руководство по MySQL и DATEDIFF говорит, что оно возвращает разницу в днях) (http://dev.mysql.com/doc/refman/5.1/en/date-and -time-functions.html # function_datediff) ... – Bobby

ответ

1

DATEDIFF даст результат в течении нескольких дней.

SELECT HOUR (ETA - STA) FROM `Schedule` WHERE `Num`="5567"; 

Альтернатива для часа разница.

1

Вы можете сделать это с помощью функции TIME_TO_SEC MySQL.

Образец

функция
SELECT (TIME_TO_SEC(ETA) - TIME_TO_SEC(STA))/60 AS `minutes` 
+0

@ KlausosKlausos, которые вы хотите сохранить в этом поле. ??? вы храните это в другой таблице ..? –

0

Использование TimeDiff

SELECT TIMEDIFF(ETA,STA) FROM `Schedule` WHERE `Num`="5567"; 
0

Обратитесь к этой теме о том, как рассчитать разницу в munites: Calculating time difference between 2 dates in minutes

DATEDIFF возвращает разницу в днях!

От docs: DATEDIFF() возвращает expr1 - expr2, выраженное как значение в днях от одной даты до другой. expr1 и expr2 - это выражения даты или даты и времени. В расчетах используются только части даты.

mysql> SELECT DATEDIFF('2007-12-31 23:59:59','2007-12-30'); 
    -> 1 
0

SELECT (TimeDiff (ЕТ, СТО)) из Списка передаст его в отформатированных минутах и ​​вернуть 00:07:00

ВЫБОР TIME_TO_MIN (TimeDiff (ЕТ, СТО)) из Списка дает 420

(7 * 60 секунд = 420)

Смежные вопросы