postgresql - 如何在postgresql中将bigint(以毫秒为单位的时间戳)值写为时间戳

标签 postgresql timestamp unix-timestamp milliseconds bigint

我正在尝试将我的值存储在带有时区字段的时间戳中。自 1970 年以来以毫秒为单位。

选择 TO_CHAR(TO_TIMESTAMP(1401432881230), 'DD/MM/YYYY HH24:MI:SS.MS')

预期 30/5/2014 11:29:42 10:54:41.230,但得到 22/08/46379 23:27:02.000

最佳答案

Unix timestamps用秒来衡量时间,不是毫秒(几乎无处不在,在 PostgreSQL 中也是如此)。

因此你需要调用

SELECT TO_TIMESTAMP(1401432881230 / 1000);

如果你想保留毫秒,用 double 调用:

SELECT TO_TIMESTAMP(1401432881230::double precision / 1000);

关于postgresql - 如何在postgresql中将bigint(以毫秒为单位的时间戳)值写为时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23950025/

相关文章:

Python,strptime 在毫秒部分跳过零

mysql - unix_timestamp 未返回预期输出

php - Mysql 添加 1 天到时间戳

sql - PostgreSQL。如何在递归查询中为所有 child 保存第一个 ID?

postgresql - "psql: could not connect to server: Connection refused"连接远程数据库出错

javascript - 在 TypeScript 和 MongoDB 中仅获取没有时间的日期

datetime - Erlang:带有时区算法的时间戳

php - MySQL 将到期时间戳与当前时间 NOW() 进行比较

sql - 计算每天使用的不同 ID 数

Postgresql - 选择 'votes' 的计数,但只包括最新的