【问题标题】:Calculate difference in dates using JOIN in MySql在 MySql 中使用 JOIN 计算日期差异
【发布时间】:2020-04-27 19:46:01
【问题描述】:

我有一个以logId 作为外键的 MySQL 表

另一张表以logId为一列,对应startDateendDate

我想以某种方式编写 JOIN,以便我的输出为每个服务器提供 startDateendDate(以小时为单位)之间的差异。

我已经写了以下JOIN,但需要帮助来计算日期差异并将其显示为TotalTime

select server, totaltime from table1
inner join table2 on table1.logId = table2.logId

【问题讨论】:

  • 转换日期 unix 时间戳并减去/除以达到小时数
  • 但是我应该如何在我的JOIN 查询中注入TIMESTAMPDIFF
  • SELECT "test_column", (UNIX_TIMESTAMP('2010-01-10 18:16:55') - UNIX_TIMESTAMP('2010-01-10 17:16:55')) / 60 / 60作为总时间mysqltutorial.org/tryit

标签: mysql join inner-join outer-join


【解决方案1】:
SELECT 
    t1.server, 
    TIMESTAMPDIFF(HOUR,t2.StartDate, t2.EndDate) AS TotalTime
FROM 
    table1 t1
    LEFT JOIN table2 t2 ON t1.logId = t2.logId

【讨论】:

    【解决方案2】:

    TIMEDIFF函数给出两个时间/日期时间之间的差异

    SELECT 
        servername, TIMEDIFF(EndDate, StartDate) AS totaltime
    FROM
        table1
            INNER JOIN
        table2 ON table1.logId = table2.logId
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-19
      • 2015-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-13
      • 1970-01-01
      相关资源
      最近更新 更多