我有一个毫秒的日期。通过类似于以下内容获得:
SELECT EXTRACT(MILLISECONDS FROM NOW())如何再次恢复为日期?
我已经尝试过了:
SELECT TO_TIMESTAMP(EXTRACT(MILLISECONDS FROM NOW()))上面的代码返回1970年的日期...
发布于 2014-08-19 21:19:08
EXTRACT不会以毫秒为单位获取日期。我认为这应该是可行的:
SELECT EXTRACT(EPOCH FROM NOW()) * 1000;
SELECT TO_TIMESTAMP(EXTRACT(EPOCH FROM NOW()))发布于 2014-08-19 21:22:49
EXTRACT(MILLISECONDS ...)得到你(per documentation) ...
秒字段,包括小数部分,乘以1000。请注意,这包括满秒数。
只需使用以下命令进行测试:
SELECT now(), EXTRACT(MILLISECONDS FROM NOW()) AS millisec;其余的是in the manual as well
纪元
对于
timestamp with time zone值,是自1970-01-01 00:00:00以来的秒数(可以是负数);对于date和timestamp值,是自1970-01-01 00:00:00本地时间以来的秒数;对于interval值,是指时间间隔内的总秒数SELECT EXTRACT(EPOCH FROM TIMESTAMP WITH时区‘442800-02-16 20:38:40.12-08');*结果: 982384720.12* SELECT EXTRACT(间隔'5天3小时’的EPOCH);*Result: 2001*
下面是如何将纪元值转换回时间戳的方法:
选择时区为'epoch‘+ 982384720.12 * INTERVAL’1秒‘的时间戳;
(
to_timestamp函数封装了上述转换。)
https://stackoverflow.com/questions/25384348
复制相似问题