这个问题来自 Notion 系统课程读者的提问,经整理后分享于此。如果你在使用 Notion 的过程中遇到了类似问题,欢迎留言交流。
读者提问
数据库里面的任务时间能否由其所有子任务的时间自动计算生成呢?如下图:

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

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

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

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

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

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

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

参考模板
参考模板链接:https://leon21.notion.site/Sub-item-1ad0e68aa04680cb806fff894d15f29a?pvs=4
📘 FLO.W 思流 — Notion 个人管理系统
FLO.W 是一套基于 Notion 搭建的个人管理模板,整合了任务、笔记、项目、习惯等模块,并配有完整的图文视频教程。


