访问 SQL 减去日期,不包括周末
Posted
技术标签:
【中文标题】访问 SQL 减去日期,不包括周末【英文标题】:Access SQL Subtract Dates excluding weekends 【发布时间】:2012-04-25 13:55:44 【问题描述】:我能够运行查询并从创建之日起更新天数。但是我想排除周末,只是周一到周五。
例子:
UPDATE [Table1] SET [Table1].Days = DATE() - [Table1].DateCreated WHERE [Table1].Password = True AND [Table1].Complete = FALSE;
这会将天数更新为从创建日期到当前日期的值,即 1、2、3 等。但是我需要它来排除周末。我不经常运行查询,但我想创建这个查询。
请帮忙,谢谢。
【问题讨论】:
那么,每 7 天只有 5 天? 是的,周一到周五。我只需要营业日。我不在乎假期,只在乎周末。 【参考方案1】:如果您将从 Access 会话中运行查询,则可以使用 VBA 用户定义函数来计算两个日期之间的工作日数。
例如,考虑 Access Web 中的 WorkingDays()
函数:Calculate Number of Working Days。如果我正确理解您的查询,我认为这可能会满足您的要求:
UPDATE [Table1]
SET [Table1].Days = WorkingDays([Table1].DateCreated, DATE())
WHERE [Table1].Password = True AND [Table1].Complete = FALSE;
在同一页面上,您可以找到一个 WorkingDays2()
函数,如果有用,您可以将假期排除在工作日计数之外。不过,您需要为假期准备一张桌子。
如果您将在 Access 会话之外执行此操作,例如从经典 ASP 或 Dot.Net,您将无法在查询中使用用户定义的函数。
【讨论】:
以上是关于访问 SQL 减去日期,不包括周末的主要内容,如果未能解决你的问题,请参考以下文章