我有一个以毫秒为单位的日期。通过以下方式获得:
SELECT EXTRACT(MILLISECONDS FROM NOW())
如何再次恢复日期?
我试过了:
SELECT TO_TIMESTAMP(EXTRACT(MILLISECONDS FROM NOW()))
以上在1970年返回日期......
答案 0 :(得分:1)
EXTRACT不会以毫秒为单位获取日期。 我认为这应该有效:
SELECT EXTRACT(EPOCH FROM NOW()) * 1000;
SELECT TO_TIMESTAMP(EXTRACT(EPOCH FROM NOW()))
答案 1 :(得分:1)
EXTRACT(MILLISECONDS ...)
得到你(per documentation)...
秒字段(包括小数部分)乘以1000。 请注意,这包括整秒。
只需测试:
SELECT now(), EXTRACT(MILLISECONDS FROM NOW()) AS millisec;
历元
对于
timestamp with time zone
值,自1970-01-01 00:00:00 UTC以来的秒数(可以是负数);date
和timestamp
值,当地时间1970-01-01 00:00:00以来的秒数; 对于interval
值,区间中的总秒数SELECT EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE '2001-02-16 20:38:40.12-08'); *Result: 982384720.12* SELECT EXTRACT(EPOCH FROM INTERVAL '5 days 3 hours'); *Result: 442800*
以下是将纪元值转换回时间戳的方法:
SELECT TIMESTAMP WITH TIME ZONE 'epoch' + 982384720.12 * INTERVAL '1 second';
(
to_timestamp
函数封装了上述转换。)