从长时间的postgres转换日期

时间:2011-10-24 08:02:24

标签: sql postgresql time

我想从一个列的纪元时间中选择日期(可读字符串),这些列在postgres中有long毫秒的时间,如

select *, to_date(time in milli sec) from mytable

怎么办?

4 个答案:

答案 0 :(得分:28)

使用

select *, to_timestamp(time in milli sec / 1000) from mytable

有关参考,请参阅http://www.postgresql.org/docs/9.0/static/functions-formatting.html

上的postgres文档

答案 1 :(得分:17)

SELECT timestamp 'epoch' + time_in_millisec * interval '1 ms'
FROM   mytable;

请参阅manual here.

答案 2 :(得分:2)

毫秒

SELECT timestamp 'epoch' + proyecto.fecha_inicio * interval '1 ms'
from proyecto.proyecto
where proyecto.fecha_inicio is not null

秒数

SELECT TIMESTAMP WITH TIME ZONE 'epoch' + 982384720 * INTERVAL '1 second';

在手册中:http://www.postgresql.org/docs/current/interactive/functions-datetime.html

行:.."以下是如何将纪元值转换回时间戳" ..

答案 3 :(得分:0)

最初的问题与日期数据类型有关,但是到目前为止,所有答案都与时间戳数据类型有关。

将毫秒转换为日期的一种方法是:

<?xml version="1.0" encoding="utf-8"?>
<xml>
<test tag="2"/>
<test tag="1"/>
</xml>

这似乎使用为数据库定义的时区