我是PostgreSQL sql的新手,现在正在处理现有的数据库。我在表中有一个名为value的列,它包含以秒为单位的日期时间戳。所以我正在寻找可以将这些秒转换为Postgres数据库中的yyyy-mm-dd hh:mm:ss的方法。我尝试了以下方法:
SELECT TO_CHAR('1444646136079 second'::interval, 'yyyy-mm-dd HH24:MI:SS')
1444646136079是我想要转换的值 但我收到以下错误:
错误:区间字段值超出范围:“1444646136079秒”
答案 0 :(得分:5)
interval
不是“时间戳”。
to_timestamp()
函数接受秒作为输入,并可将其转换为适当的时间戳。我相信您的1444646136079实际上是毫秒秒,而不是秒:
select to_char(to_timestamp(1444646136079 / 1000), 'yyyy-mm-dd HH24:MI:SS')
返回:
2015-10-12 12:35:36
答案 1 :(得分:0)
您也可以尝试-
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