将秒转换为yyyy-mm-dd hh:mm:ss PostgreSQL

7

我是PostgreSQL的新手,正在处理一个已经存在的数据库。我有一个表中的一个名为value的列,其中包含以秒为单位的日期时间戳。因此,我正在寻找一种方法将这些秒转换为Postgres数据库中的yyyy-mm-dd hh:mm:ss格式。我尝试了以下操作:

SELECT  TO_CHAR('1444646136079 second'::interval, 'yyyy-mm-dd HH24:MI:SS')

我想要转换的值是1444646136079

但是我收到了以下错误提示:

错误:时间间隔值超出范围:“1444646136079秒”

2个回答

17

区间不是"时间戳"。

to_timestamp()函数接受秒作为输入,并可以将其转换为适当的时间戳。我认为你的1444646136079实际上是毫秒,而不是秒:

select to_char(to_timestamp(1444646136079 / 1000), 'yyyy-mm-dd HH24:MI:SS')

返回:

2015-10-12 12:35:36

有关 interval 的实际含义,请参阅手册:http://www.postgresql.org/docs/current/interactive/datatype-datetime.html - IMSoP

1

你也可以尝试一下-

select to_date(to_timestamp(1344646136069 / 1000)::TEXT, 'yyyy-mm-dd HH24:MI:SS');

select to_date(to_timestamp(1344646136069 / 1000)::TEXT, 'YYYY-MM-DD HH:MI:SS');

输出:

11.08.2012 00:00:00
11.08.2012 00:00:00

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接