【问题标题】:MySQL Calculate 2 date [duplicate]MySQL计算2日期[重复]
【发布时间】:2016-08-21 11:35:31
【问题描述】:

我创建了一个包含 2 列的表来存储 startDateendDate

例如:

ID startDate  endDate
1  2011-04-19 2011-04-21

我想计算这两天的差并返回“3”。是否可以使用 SQL 计算?

【问题讨论】:

  • 是的。正如无数资料中所解释的,完全可以使用 SQL 进行计算。

标签: mysql sql date


【解决方案1】:

使用DATEDIFF 函数。

SELECT DATEDIFF(endDate,startDate)+1 AS Difference
FROM yourtable

输出

Difference
3

SQL 小提琴:http://sqlfiddle.com/#!9/9373ec/3/0

更多阅读在这里http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_datediff

【讨论】:

    【解决方案2】:

    是的,MySQL 中的 DATEDIFF() 函数正是这样做的。 SELECT DATEDIFF(endDate, startDate) 将返回差值(是 2,而不是 3)

    【讨论】:

      【解决方案3】:

      使用日期差异函数

      select datediff(enddate, startdate) + 1 from your_table 
      

      【讨论】:

        【解决方案4】:

        您可以为此使用DATEDIFF

        SELECT DATEDIFF(endDate, startDate) + 1
        FROM mytable 
        

        注意:您必须加 1 才能使startDate 包含在结果中。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-08-31
          • 2014-01-10
          • 1970-01-01
          • 1970-01-01
          • 2021-04-27
          • 1970-01-01
          • 2018-12-31
          • 2014-04-27
          相关资源
          最近更新 更多