【问题标题】:Calculating the difference between dates, excluding weekends [duplicate]计算日期之间的差异,不包括周末[重复]
【发布时间】:2020-01-14 16:18:12
【问题描述】:

我正在尝试创建一个查询/SQL 查询来计算两个日期之间的工作日数(不包括周六/周日)。

【问题讨论】:

  • 什么是数据库?不同供应商的日期/时间数据库功能差异很大。
  • 这是 Microsoft Access 2010
  • 如果您在 MS Access 中,您最好在 VBA 中创建一个函数,而不是为此进行查询。它可能可以通过内置函数内联完成,但结果最多看起来很难看。如果您创建一个 VBA 函数,那么您将能够隐藏一个简单的函数调用背后的丑陋。您甚至可以调用 Excel 函数“NetworkDays”,这正是您想要的 VBA。

标签: sql ms-access


【解决方案1】:

在这里将我的评论变成答案...打开 VBA 编辑器并在 Tools > References 下确保您已勾选 Microsoft Excel XX.X Object LibraryXX.X 的位置取决于您运行的 MS Office 版本。

然后添加一个新模块,名称无所谓。在那里添加以下代码:

Function WeekdaysBetween(fromDate As Date, toDate As Date)

  WeekdaysBetween = Excel.Application.Networkdays(fromDate, toDate)

End Function

您现在可以在查询中调用此函数。

健康警告:VBA 函数的运行速度不如“本机”函数快,因此如果您有大量数据,这可能会相当慢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-03
    • 1970-01-01
    • 2021-06-20
    • 1970-01-01
    • 2019-04-15
    • 2019-12-10
    相关资源
    最近更新 更多