MS Access:根据日期字段计算下一季度的第一天

时间:2018-04-30 14:23:49

标签: ms-access

在MS Access Table上,我希望根据另一列中的日期列出具有下一季度第一天的列。

例如,我有Start_Date列,其值为2018-02-04,我希望该列上的记录显示下一季度将从2018-04-01开始。

我使用以下公式在Excel中正常工作:

  

= DATE(YEAR(M2),((INT((MONTH(M2)-1)/ 3)+1)* 3)+1,1)

在Access中,我添加了选择Calculated Field>列的列。 Date/Time,但无法找到让它像Excel一样工作的方法。

有没有人曾经尝试过这个或知道可能的解决方案?感谢

1 个答案:

答案 0 :(得分:1)

您可以使用此功能:

Public Function DateNextQuarterFirst( _
  Optional ByVal datDateThisQuarter As Date) As Date

  Const cintQuarterMonthCount   As Integer = 3

  Dim intThisMonth              As Integer

  If datDateThisQuarter = 0 Then
    datDateThisQuarter = Date
  End If
  intThisMonth = DatePart("q", datDateThisQuarter) * cintQuarterMonthCount

  DateNextQuarterFirst = DateSerial(Year(datDateThisQuarter), intThisMonth + 1, 1)

End Function

在具有与此类似的SQL的查询中使用它:

Select *, DateNextQuarterFirst([Start_Date]) As NextQuarterFirst
From YourTable