编辑:多亏了 barnyr,我得到了以秒为单位的平均值,所以现在我只需要将其转换为正确的格式。不幸的是,Peter 提到的 Coldfusion 函数只接受一个 datetime 对象,所以我又被转换难住了。
我有两个问题。我需要生成 Y 用户完成任务的平均时间,然后以特定格式显示结果:x 年 x 月 x 周 x 天 x 小时 x 分钟 x 秒。
我的后端数据库是 SQL Server 2008,我通过 Coldfusion 10 运行查询。两列都是日期时间字段。
查询是(类似于):
SELECT Started_Date, Completed_Date
FROM tbl_progress
WHERE 0=0
然后我需要遍历查询结果,获取 Completed_Date 和 Started_Date 之间的差异(即持续时间),对结果进行平均,然后按上述方式显示。
从 Stackoverflow 上的另一个线程我得到了以下代码,但它只适用于所需格式的天/小时/分钟/秒部分。
<cfloop query="complete_time">
<cfset completed = ParseDateTime(complete_time.Completed_Date) />
<cfset started = ParseDateTime(complete_time.Started_Date) />
<cfset difference = (completed - started) />
<cfset fixed_diff = Fix(difference) />
<cfset days = fixed_diff />
<cfset hours = TimeFormat(difference, "H") />
<cfset minutes = TimeFormat(difference, "m") />
<cfset seconds = TimeFormat(difference, "s")/ >
</cfloop>
我需要知道如何/在哪里进行平均,以及如何获得所需格式的年/月/周值。日期数学绝对不是我最好的科目!谢谢。