【问题标题】:MS Access use DATE() in a calculated fieldMS Access 在计算字段中使用 DATE()
【发布时间】:2020-04-08 18:23:57
【问题描述】:

我正在使用 Microsoft Access 2016。我试图找出从当前年份到未来年份存在多少年。我有一列是 end_date。我正在尝试创建一个本质上是 YEAR(end_date) - YEAR(current_year) 的计算字段。我尝试使用 YEAR(DATE()) 但显然不允许在计算字段中使用 DATE()。

有没有办法进行这样的计算?

【问题讨论】:

    标签: date ms-access calculated-field


    【解决方案1】:

    不。计算字段是缓存的和静态的,因此绝不允许包含任何会随时间变化的信息,因为系统设置,或任何其他未直接输入该行的信息。

    但是,无论如何,您都不应该使用计算字段。请参阅 http://allenbrowne.com/casu-14.html,在许多提倡不使用计算字段的帖子中。

    改为使用查询来进行计算。这样,您在使用当前日期时不会遇到任何问题,也不必处理计算字段带来的可能错误和可移植性问题。

    【讨论】:

      【解决方案2】:

      我改变了想法,用一种形式来计算它。在数据库中拥有一个每天都在变化的字段似乎不是一个好习惯。

      【讨论】:

        【解决方案3】:

        在表单中,您可以将此表达式用作文本框的控制源:

        =DateDiff("yyyy",Date(),[EndDate])
        

        但是,这会返回日历年的差异。要查找 full 年的计数,请使用 AgeSimple 之类的函数和以下表达式:

        =AgeSimple([EndDate])
        

        【讨论】:

          猜你喜欢
          • 2017-04-28
          • 1970-01-01
          • 1970-01-01
          • 2023-04-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多