在数据库中存储“时间戳(Timestamp)”通常有几种常见方式,具体取决于你使用的数据库类型、业务需求(如是否需要时区、是否需要精确到毫秒等)。
大多数关系型数据库都提供了专门的时间类型:
| 数据库 | 推荐类型 | 说明 |
|---|---|---|
| MySQL | DATETIME / TIMESTAMP |
TIMESTAMP 受时区影响,DATETIME 不受 |
| PostgreSQL | TIMESTAMP / TIMESTAMPTZ |
TIMESTAMPTZ 带时区(推荐) |
| Oracle | DATE / TIMESTAMP |
TIMESTAMP 精度更高 |
| SQL Server | DATETIME / DATETIME2 |
DATETIME2 精度更好 |
✅ 优点
即存从 1970-01-01 00:00:00 UTC 到现在的秒或毫秒数:
CREATE TABLE log (
id INT,
created_at BIGINT -- 毫秒级时间戳
);
✅ 优点
❌ 缺点
created_at VARCHAR(20) -- '2026-01-15 10:30:00'
❌ 问题
例如 PostgreSQL:
created_at TIMESTAMPTZ DEFAULT now()
MySQL:
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
CREATE TABLE orders (
id BIGINT PRIMARY KEY,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE orders (
id BIGSERIAL PRIMARY KEY,
created_at TIMESTAMPTZ DEFAULT now()
);
CREATE TABLE events (
id INT,
event_time BIGINT -- 毫秒
);
✅ 优先选:
✅ 特殊场景选 Unix 时间戳:
如果你能告诉我:
我可以给你更精确的表结构设计建议。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。