【问题标题】:Difference between two datetime entries两个日期时间条目之间的差异
【发布时间】:2013-08-28 20:49:23
【问题描述】:
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(即分钟)?

【问题讨论】:

标签: mysql sql datetime datediff


【解决方案1】:

DATEDIFF 将在几天内给出结果。

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

时差的替代方案。

【讨论】:

    【解决方案2】:

    您可以使用TIME_TO_SEC MySQL 函数来做到这一点。

    示例

    SELECT (TIME_TO_SEC(ETA) - TIME_TO_SEC(STA))/60 AS `minutes` 
    

    【讨论】:

    • @KlausosKlausos 你想保存这个字段是什么意思。???你要把它存到其他表中吗?
    【解决方案3】:

    使用TIMEDIFF函数

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

    【讨论】:

      【解决方案4】:

      关于如何计算 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
      

      【讨论】:

        【解决方案5】:

        从时间表中选择 (TIMEDIFF(ETA,STA)) 将以格式化的分钟数给出并返回 00:07:00

        从时间表中选择 TIME_TO_MIN(TIMEDIFF(ETA,STA)) 给出 420

        (7 * 60 秒 = 420)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-03-24
          • 2011-10-29
          • 2021-10-21
          • 2021-11-25
          • 2011-08-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多