首页 > 解决方案 > MS Access - 四岁生日后的日期

问题描述

希望是一个相对简单的查询。

我正在使用 MS Access,我正在尝试从他们 4 岁生日后的 9 月 1 日出生日期开始计算。

因此,如果我的出生日期是 02/07/2015,它将返回 01/09/2019。

如果我的出生日期是 03/09/2015,它将返回 01/09/2020。

任何帮助将非常感激。

谢谢

标签: ms-access

解决方案


您可以定义一个函数,例如:

Function SchoolStart(dob As Date) As Date
    If DateSerial(Year(dob), 9, 1) < dob Then
        SchoolStart = DateSerial(Year(dob) + 5, 9, 1)
    Else
        SchoolStart = DateSerial(Year(dob) + 4, 9, 1)
    End If
End Function

例子:

?SchoolStart(#2015-07-02#)
01/09/2019 

?SchoolStart(#2015-09-02#)
01/09/2020 

请注意,使用当前的函数逻辑,9 月 1 日的生日包括该年入学的孩子:

?SchoolStart(#2015-09-01#)
01/09/2019 

或者,如果您想直接在表单的查询或控制源中使用上述逻辑,则可以使用以下内联表达式:

DateSerial(Year([YourDate])+IIf(DateSerial(Year([YourDate]),9,1)<[YourDate],5,4),9,1)

这里,[YourDate]是包含要执行计算的日期的字段。


推荐阅读