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

如何将毫秒值转换为带小数的PostgreSQL Timestamp格式

正确转换毫秒级时间戳为PostgreSQL Timestamp的方法

针对你的问题,以下是两种可靠的转换方式,确保得到带微秒精度的timestamp格式:

方法1:使用专用毫秒转换函数(PostgreSQL 12+)

PostgreSQL 12及以上版本提供了TO_TIMESTAMP_MS()函数,可直接将毫秒级UNIX时间戳转换为带时区的时间,再转换为timestamp类型存入表中:

INSERT INTO my_table (created) VALUES (TO_TIMESTAMP_MS(1706812200000)::timestamp);

执行后,created字段的值会是2024-02-02 01:30:00.000000(UTC时区下),完全符合你想要的YYYY-MM-DD HH:MI:SS.FFFFFF格式。

方法2:兼容低版本PostgreSQL

如果你的PostgreSQL版本低于12,没有TO_TIMESTAMP_MS函数,可以通过精确的数值转换避免精度丢失:

INSERT INTO my_table (created) VALUES (TO_TIMESTAMP(1706812200000::bigint / 1000.0));

这里先将毫秒值转为bigint保证整数精度,再除以1000.0得到带小数的秒级时间戳,传入TO_TIMESTAMP后同样会生成带微秒精度的结果。

时区说明

如果你得到的时间与预期时区不符,可以检查数据库的timezone配置,或者在转换时指定时区,例如:

INSERT INTO my_table (created) VALUES (TO_TIMESTAMP_MS(1706812200000) AT TIME ZONE 'Asia/Shanghai');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 00:27:03