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

Cly*_*yde 13 postgresql timestamp milliseconds bigint unix-timestamp

我正试图在timezone中存储timezone字段我的值.它是从1970年开始的毫秒.

select 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

poz*_*ozs 35

Unix时间戳以秒为单位测量时间,而不是毫秒(几乎在所有地方,也在PostgreSQL中).

因此你需要打电话

SELECT TO_TIMESTAMP(1401432881230 / 1000);
Run Code Online (Sandbox Code Playgroud)

如果您想保留毫秒数,请致电double precision:

SELECT TO_TIMESTAMP(1401432881230::double precision / 1000);
Run Code Online (Sandbox Code Playgroud)

  • 如果需要,您还可以编写“TO_TIMESTAMP(1401432881230 / 1000.0)”而不是显式转换。 (3认同)