mysql 中两个日期的总天数

Total days from two dates in mysql

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

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

DATEDIFF(expr1,expr2)

DATEDIFF() returns 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

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

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

如果您仔细查看 datediff 函数,

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

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

会给你0天。

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

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