You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Directus中存储时长值的数据类型选型咨询

在Directus中存储时长(时间间隔)的方案

Directus目前没有专门用于存储**时长(时间间隔)**的原生字段类型,你可以通过以下两种常用方案实现需求:

方案一:用数字字段存储总时长(推荐)

创建一个integer类型的字段(比如命名为duration_seconds),将时长转换为总秒数存储(例如“1 h, 30 m”存为5400)。

格式化显示

  • 在Directus后台的字段设置中,使用显示模板自动转换格式:
    {{ Math.floor(value / 3600) }} h, {{ Math.floor((value % 3600) / 60) }} m
    
  • 前端调用API时,也可以用同样的逻辑在代码中完成格式转换。

这种方案的优势是查询效率高,便于做时长相关的筛选、排序(比如筛选时长超过2小时的内容)。

方案二:用JSON字段存储结构化时长

创建一个json类型的字段,直接存储包含小时、分钟的结构化数据,例如:

{"hours": 1, "minutes": 30}

读取时直接提取对应字段值拼接成“X h, Y m”的格式即可。这种方式无需计算,但查询时的灵活性不如数字字段。

注意:DATETIME类型确实不适用,它的设计目的是存储具体的时间点(包含日期),而非时间间隔。

内容的提问来源于stack exchange,提问作者Philipp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 02:23:13