【问题标题】:Total days from two dates in mysqlmysql中两个日期的总天数
【发布时间】:2015-07-03 11:19:10
【问题描述】:

对于请假申请,FROM 日期和 TO 日期是通过从日历中选择日期来给出的。我在mysql中有这两个日期。我想计算休假天数。所以从 7 月 1 日到 7 月 5 日申请休假的人。所以总共5天。 但是当我使用 DateDiff(to, date) 时,它给出了 4。 我怎样才能得到 5 天?

select datediff('2015-07-05','2015-07-01');

【问题讨论】:

    标签: mysql datediff


    【解决方案1】:

    您可以简单地使用+1,正如您已经注意到的,DATEDIFF 不包括开始日期,请参见下面的示例:

    select (datediff('2015-07-05','2015-07-01') + 1) as days
    

    【讨论】:

      【解决方案2】:

      DATEDIFF(expr1,expr2)

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

      例子

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

       SELECT DATEDIFF('2010-11-30 23:59:59','2010-12-31');
       Output : 31
      

      可以手动加1

      【讨论】:

        【解决方案3】:

        如果你仔细观察 datediff 函数,

        当您使用两个相同的日期时,它会给您 0 天的差异,而不是 1。

        select datediff('2015-07-01','2015-07-01');
        

        会给你0天。

        所以很明显,你会少一天,因为它从同一日期的 0 差异开始。

        【讨论】:

          【解决方案4】:

          datediff 将返回两个日期之间的差异,但是您需要在计算叶子数时包括两个日期。你应该使用value returned from datediff + 1。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-08-29
            • 2023-01-25
            • 2011-08-29
            • 1970-01-01
            • 2023-02-07
            • 2013-05-18
            • 2020-07-08
            • 2014-06-14
            相关资源
            最近更新 更多