Skip to content

[17.0-rc][疑似平台] datetime 字段的时间窗过滤返回空集(客服仪表盘全空) #520

Description

@yinlianghui

现象

升级 @objectstack/* 到 17.0.0-rc.0 后,客服仪表盘所有 widget 显示 0 / 暂无数据,而数据库中有 38 条工单(30 条未关闭,全部在近 30 天窗口内)。

复现

  1. 升级到 17.0.0-rc.0,SQLite(better-sqlite3)驱动,全新种子数据
  2. 打开客服仪表盘(dateRange: last_30_days,字段 created_date,类型 datetime)
  3. 所有基于 case_metrics 的 widget 返回空

widget 实际 SQL:WHERE is_closed = ? AND created_date >= ? AND created_date <= ?。列内容为 ISO 文本(如 2026-07-26T00:00:00.000Z)。同一查询手工验证:ISO 字符串参数返回 29 行,epoch 毫秒参数返回 0 行 —— 17.0 驱动把 datetime 比较参数转成了 epoch 毫秒,与磁盘上的 ISO 文本比较永假。

date 类型字段(如 close_date)不受影响(销售/高管仪表盘正常)。数据库是 17.0 自己新建的,属于写入端(ISO)/读取端(epoch)不一致(对应 spec 中 SqlDriver.temporalFilterValue 的行为)。

影响

所有 datetime 字段上的 dateRange / {30_days_ago} 类时间窗过滤。升级阻断

详见分支 upgrade/objectstack-17 的 docs/upgrade-17/test-report.md §3 P1。

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions