1

我正在创建一个数据库,目的是计算两个里程碑之间经过的时间长度。

[ID] [里程碑] [MDate] [时间长度]
-------------------------------------------------- ------
  1 1 Jan 1, 2013 [如果下一个里程碑是 2 并且它们具有相同的 ID;
                     计算 2013 年 1 月 1 日与 2013 年 2 月 1 日的 Datediff] Ans: 1 个月]

  1 2 2013 年 2 月 1 日 [如果没有随后的里程碑,结束日期应为 date();Datediff= 2013 年 2 月 1 日与 Date()]

  2 1 2013 年 1 月 15 日 [如果以下里程碑为 2 并且它们具有相同的 ID;
                     计算 2013 年 1 月 15 日与 2013 年 2 月 1 日的 Datediff] Ans: 18 days]

  2 2 2013 年 2 月 1 日 [如果以下里程碑为 3 并且它们具有相同的 ID;
                     计算 2013 年 2 月 1 日与 2013 年 2 月 27 日的 Datediff] Ans: 12 days]

  2 3 Feb 27, 2013 如果没有后续里程碑,结束日期应为 date();Datediff= 2013 年 2 月 27 日与 Date()]

表的设置是:

[ID] - Number; 
[Milestone] - Number; 
[Mdate]-Date; 
[Length of time] - calculated field in the query; should be with a user defined function

问题是我无法自动计算两者之间的时间长度。我需要我的数据库来感知当两个具有相同 ID 和里程碑编号的记录发生更改时,上一个里程碑将使用下一个里程碑的结束日期,否则如果结束日期之后没有任何内容,则为当前日期。

我需要一个用户定义的函数来自动计算时间长度。

4

0 回答 0