读者提问
数据库里面的任务时间能否由其所有子任务的时间自动计算生成呢?如下图:

我的回答
可以使用 Rollup(汇总)这个字段来辅助解决这个问题。
假设我们构建了这样一个「项目 – 任务」结构的数据库

现在的目标是在「项目」页面中,统计所有子任务的时间范围,得到下面这样的效果

具体解法如下。
首先,汇总字段本身自带日期范围统计功能,所以我们可以创建两个「汇总」,分别统计子任务的「最早时间」与「最晚时间」

当然你也可以直接用汇总字段来计算子任务总的时间范围,不过这样它只能计算时间长度,而不能显示为「日期 1 → 日期 2」的格式

所以我们可以再创建一个函数字段,然后用 dateRange
函数将「最早时间」与「最晚时间」串联起来

但是这样一来你会发现,最终得到的时间格式是 @2025年2月28日 00:00 → 2025年5月18日 00:00
,出现了你可能不想要的 00:00
,这是因为所有的日期在默认情况下的时间都是 00:00
。
所以我们可以先用 formatDate
函数和 parseDate
函数对 「最早时间」和「最晚时间」进行加工处理,然后再用 dateRange
来拼接。
具体效果如下:

完整函数:
dateRange(开始时间.formatDate("YYYY-MM-DD").parseDate(),结束时间.formatDate("YYYY-MM-DD").parseDate())
完整数据库:

参考模板
你也可以加入我的 知识星球,免费获取这个模板。
本站所有文章,除非特别说明或标注,均为本站原创发布。转载本文需附上本文链接,未经授权,禁止大篇幅复制、盗用、采集或发布本站内容至其他网站、书籍等各类媒体平台。