【问题标题】:How to find the number of days between two different dates in SQL Server? [duplicate]如何在 SQL Server 中查找两个不同日期之间的天数? [复制]
【发布时间】:2020-04-12 19:58:03
【问题描述】:

我有基本查询:

SELECT A.Username
    ,EH.[From]
    ,EH.[End]
    ,DATEDIFF(d, [From], [End]) AS HolidaysInDays
FROM EmployeHoliday EH
LEFT JOIN Admin A ON EH.UserId = A.AdminId
WHERE EH.IsActive = 1

如果员工申请休假(LeaveStart = "17 Dec 2019" to LeaveEnd = "19 Dec 2019"), 当我执行查询时,输出是 HolidaysInDays = 2,但实际天数是 3。那么,我该如何解决这个问题?

我的输出如下图所示。

【问题讨论】:

  • 您是在问我们如何添加一个?
  • 在考虑时间部分时,您的基础数据正好是 2 天。人们可以请半天假吗?如果是这样,EmployeHoliday 中如何表示?

标签: sql-server


【解决方案1】:

当使用DATEDIFF 时,结束日期是专有日期,因此不计入计算:

PRINT DATEDIFF(d, '2019-12-17', '2019-12-19')

输出:

2

要添加最终日期,只需在结果中添加 1:

PRINT DATEDIFF(d, '2019-12-17', '2019-12-17') + 1
PRINT DATEDIFF(d, '2019-12-17', '2019-12-18') + 1
PRINT DATEDIFF(d, '2019-12-17', '2019-12-19') + 1

输出:

1
2
3

【讨论】:

    【解决方案2】:

    这样想: 7 - 5 是多少?

    轰隆隆。

    【讨论】:

      猜你喜欢
      • 2016-03-15
      • 1970-01-01
      • 2015-03-11
      • 2015-02-13
      • 1970-01-01
      • 2012-01-05
      • 1970-01-01
      • 2017-05-17
      • 1970-01-01
      相关资源
      最近更新 更多