我正在创建一个数据库,目的是计算两个里程碑之间经过的时间长度。
[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 和里程碑编号的记录发生更改时,上一个里程碑将使用下一个里程碑的结束日期,否则如果结束日期之后没有任何内容,则为当前日期。
我需要一个用户定义的函数来自动计算时间长度。