Crystal reports 如何从crystal report中的datetime获取时间持续时间

Crystal reports 如何从crystal report中的datetime获取时间持续时间,crystal-reports,Crystal Reports,我正在使用crystal reports,我正在尝试确定完成一项任务所需的时间。报表当前从SQL中提取接受的日期时间和完成的日期时间 我想做的是一个领域,你可以看到我花了多少个月、天、小时、分钟和秒来完成这项任务。它在SQL中的保存方式是01/01/1901 00:00:00,例如在已接受和已完成字段上。我目前已经建立了这是下面,但它不是拉的信息准确。有人能帮忙吗。提前谢谢你的帮助 StringVar varMonth := ToText(DatePart("m",{PROJECT_MGMT.S

我正在使用crystal reports,我正在尝试确定完成一项任务所需的时间。报表当前从SQL中提取接受的日期时间和完成的日期时间

我想做的是一个领域,你可以看到我花了多少个月、天、小时、分钟和秒来完成这项任务。它在SQL中的保存方式是01/01/1901 00:00:00,例如在已接受和已完成字段上。我目前已经建立了这是下面,但它不是拉的信息准确。有人能帮忙吗。提前谢谢你的帮助

StringVar varMonth := ToText(DatePart("m",{PROJECT_MGMT.STATUS_UPDATE_DATE}) - DatePart("m",{PROJECT_MGMT.PROJECT_ASSIGN_DATE}),0);
StringVar varDay := ToText(DatePart("d",{PROJECT_MGMT.STATUS_UPDATE_DATE}) - DatePart("d",{PROJECT_MGMT.PROJECT_ASSIGN_DATE}),0);
StringVar varHour := ToText(DatePart("h",{PROJECT_MGMT.STATUS_UPDATE_DATE}) - DatePart("h",{PROJECT_MGMT.PROJECT_ASSIGN_DATE}),0);
StringVar varMinute := ToText(DatePart("n",{PROJECT_MGMT.STATUS_UPDATE_DATE}) - DatePart("n",{PROJECT_MGMT.PROJECT_ASSIGN_DATE}),0);
StringVar varSecond;
NumberVar fff := DatePart("s",{PROJECT_MGMT.STATUS_UPDATE_DATE}) - DatePart("s",{PROJECT_MGMT.PROJECT_ASSIGN_DATE}) + 60;
if (fff >= 60) Then
fff = fff - 60;
varSecond = ToText(fff);
varMonth + " Months " + varDay + " Days " + varHour + " Hours " + varMinute + " Minutes " + ToText(fff) + " Seconds "

在Crystal报告中,创建5个公式,每个月、天、小时、分钟、秒各一个。 除区间类型值(“m”、“d”、“h”、“n”、“s”)外,所有代码均相同:

需要转换为字符串以去除小数。 然后创建另一个公式,将它们放在一起,如:

Formula1 + " months," + Formula2 + " days," + Formula3 + " hours," + ......
你明白了

希望有帮助

克里斯

编辑:对不起,在我写了这篇文章之后,我意识到它不起作用,因为它将显示月份和天数的总和,等等。因此,也许你需要计算差异。给我点时间想清楚

编辑2: 好的,我认为你可以这样做,使用以下公式:

year(completeDate)- year(acceptDate)

我会给你一年的时间。你在数月、数天、数小时等时间里都做同样的事情,然后你把它们放在一个单独的公式中。唯一需要注意的是,如果你跨越一年,而不是12个月。比如2013年10月至2014年2月。因此,如果年份大于1,则必须输入“如果”语句,检查月份是否大于12。你明白了吗?

只是为了澄清一下:接受字段将包含开始日期,完整的飞行将包含结束日期?你想知道两者之间的日期差,对吗?
year(completeDate)- year(acceptDate)