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

如何在SQLite中自动生成UTC毫秒级精度的插入时间戳

问题解答

1. 表结构修正与UTC时间戳实现

首先你的表结构里insertTimestamp列缺少数据类型,需先补充完整。要存储带毫秒精度的UTC时间戳,推荐使用DATETIME(3)类型(支持毫秒级存储),并通过数据库内置函数设置默认值自动生成目标格式的UTC时间:

CREATE TABLE IF NOT EXISTS user (
    id INTEGER PRIMARY KEY,
    insertTimestamp DATETIME(3) DEFAULT (datetime('now', 'utc'))
);

插入数据时若不主动指定insertTimestamp的值,数据库会自动填充当前UTC时区的YYYY-MM-DD HH:MM:SS.SSS格式时间。如果需要手动插入,可直接调用内置函数:

INSERT INTO user (insertTimestamp) VALUES (datetime('now', 'utc'));

2. 最高效的实现方式

用数据库默认值的方式是最高效的:

  • 无需在应用层处理时间逻辑,直接由数据库引擎自动生成,减少应用与数据库的交互成本。
  • datetime('now', 'utc')是SQLite原生内置函数,执行效率极高,不会产生额外性能损耗。

3. 服务器时间对数据库时间的影响

会直接影响。SQLite的datetime('now', 'utc')是基于运行数据库的服务器系统时间计算得出的。如果服务器系统时间不准确(比如时间偏移、时区配置错误),生成的UTC时间也会同步出错。比如服务器本地时间比真实UTC时间快2小时,那么生成的UTC时间也会比实际时间快2小时。要避免这个问题,必须确保服务器的系统时间和时区配置准确无误。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 03:04:57