概述
日期时间字段类型
日期时间字段类型包括以下几种:
- 日期时间(含时区) - 日期时间会统一转换为 UTC 时间(协调世界时),并在需要时进行时区转换;
- 日期时间(不含时区) - 存储不带时区信息的日期和时间;
- 日期(不含时间) - 仅存储日期,不包含时间部分;
- 时间 - 仅存储时间,不包含日期部分;
- Unix 时间戳 - 存储为 Unix 时间戳,通常为自1970年1月1日以来的秒数。
各日期相关字段类型的示例:
各数据源对照
NocoBase、MySQL 和 PostgreSQL 的对照表格:
备注:
- MySQL TIMESTAMP 的数据范围介于 UTC 时间
1970-01-01 00:00:01 ~ 2038-01-19 03:14:07之间,超出此范围时,建议使用 DATETIME 或 BIGINT 存储 Unix 时间戳。
日期时间存储的处理流程
含时区
包括日期时间(不含时区)和 Unix 时间戳

备注:
- 为了支持更广泛的数据范围,NocoBase 的日期时间(含时区)的字段 MySQL 数据库里使用的是 DATETIME,存储的日期值是根据服务端 TZ 环境变量转换之后的值,如果 TZ 环境变量变更之后,日期时间的存值会产生变化。
- UTC 时间与本地时间存在时区差,直接展示 UTC 原始值可能会让用户误解。
不含时区

UTC
UTC(协调世界时,Coordinated Universal Time)是全球时间标准,用于协调和统一世界各地的时间。它是基于原子钟的高精度时间标准,并且与地球自转的时间保持同步。
UTC 时间与本地时间存在时区差,直接展示 UTC 原始值可能会让用户误解,例如:
以上表示的都是一个时间,只是时区有所区别。

