-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(即分钟)?

4

5 回答 5

1

您可以使用TIME_TO_SECMySQL 函数执行此操作。

样本

SELECT (TIME_TO_SEC(ETA) - TIME_TO_SEC(STA))/60 AS `minutes` 
于 2013-08-26T11:22:19.727 回答
1

DATEDIFF 将在几天内给出结果。

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

小时差的替代方案。

于 2013-08-26T11:24:38.087 回答
0

使用 TIMEDIFF 函数

SELECT TIMEDIFF(ETA,STA) FROM `Schedule` WHERE `Num`="5567";
于 2013-08-26T11:23:07.577 回答
0

有关如何计算 munites 差异的信息,请参阅此线程:计算 2 个日期之间的时间差(以分钟为单位)

DATEDIFF将在几天内返回差价!

文档: DATEDIFF() 返回 expr1 – expr2 表示为从一个日期到另一个日期的天数。expr1 和 expr2 是日期或日期和时间表达式。计算中仅使用值的日期部分。

mysql> SELECT DATEDIFF('2007-12-31 23:59:59','2007-12-30');
    -> 1
于 2013-08-26T11:23:45.327 回答
0

SELECT (TIMEDIFF(ETA,STA)) FROM SCHEDULE 将以格式化的分钟数给出并返回 00:07:00

SELECT TIME_TO_MIN(TIMEDIFF(ETA,STA)) FROM SCHEDULE 给出 420

(7 * 60 秒 = 420)

于 2013-08-26T11:36:27.670 回答