围绕特定日期但年份不断变化的访问查询[关闭]

Posted

技术标签:

【中文标题】围绕特定日期但年份不断变化的访问查询[关闭]【英文标题】:Access Queries surrounding specific date yet changing year [closed] 【发布时间】:2017-03-04 14:04:17 【问题描述】:

我正在帮助客户处理他们的数据库,但在生成查询部分的条件时遇到了一些问题。如果它在 2017 年 1 月 9 日之前,我需要标准为“2018”,如果在 2017 年 1 月 9 日之后,我需要为 2019 年,但是它需要在 2018 年 1 月 9 日之后更改为 2020 年。任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

您似乎想减去 9 天,然后添加一些适当的数量(1 年或 2 年)。您可以使用dateadd() 执行此操作。所以,是这样的:

select year(dateadd("day", -9, coldate)) + 1

注意:如果您的日期确实是 9 月 1 日而不是 1 月 9 日,那么请使用月而不是日。这个想法仍然成立:减去一个区间,然后使用year() 函数。

【讨论】:

我的意思是 sep 1st 所以是 select year(dateadd("month", -1, year())) + 9 吗?【参考方案2】:

您可以有一个函数将日历天“转换”为财政年度的天数:

Public Function DateFinancial( _
  ByVal Date1 As Date) _
  As Date

  ' End month of financial (fiscal) year.
  Const EndMonth    As Long = 8

  Dim ResultDate    As Date

  ResultDate = DateAdd("m", 12 - EndMonth, Date1)

  DateFinancial = ResultDate

End Function

因此,要获取日历日期的财政年度:

FinancialYear = Year(DateFinancial([YourDateField]))

根据你需要后一年,添加一年:

FinancialYearNext = Year(DateFinancial([YourDateField])) + 1

或:

FinancialYearNext = Year(DateFinancial(DateAdd("yyyy", 1, [YourDateField])))

【讨论】:

以上是关于围绕特定日期但年份不断变化的访问查询[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

SQL查询以获取特定年份的当前日期(考虑月份和日期)的数据

使用 vba 在访问查询中传递参数值

需要为日期允许 Null 或“”值 - 访问查询数据类型不匹配

根据月份和年份以及状态获取上一年的记录

计算特定年份的sql中的日期差异

MDX 查询以对具有特定日期范围的日期维度进行分组