如何将bigint字段格式化为Postgresql中的日期?

我有一个bigint类型的表。该字段存储时间戳。 我希望日期格式化这样的字段: to_char(bigint_field,'DD / MM / YYYY HH24:MI:SS') 我收到以下错误: 错误:多个小数点 ÉtatSQL:42601     
已邀请:
TO_CHAR(TO_TIMESTAMP(bigint_field / 1000), 'DD/MM/YYYY HH24:MI:SS')
    
这取决于bigint值代表什么 - 偏离了纪元时间。
select to_timestamp(20120822193532::text, 'YYYYMMDDHH24MISS')
回报   “2012-08-22 19:35:32 + 00”     
我是这样做的:
to_timestamp(to_char(20120822193532, '9999-99-99 99:99:99'),'YYYY-MM-DD HH24:MI:SS')
结果如下:   2012-08-22 19:35:32 您也可以在选择statemant时使用它,只需将数字与数据库colunm交换即可。 分步说明:
to_char(20120822193532, '9999-99-99 99:99:99')
这将创建一个这样的字符串:   “2012-08-22 19:35:32” 现在我们可以轻松地将其转换为时间戳:
to_timestamp('2012-08-22 19:35:32','YYYY-MM-DD HH24:MI:SS')
结果看起来和以前一样,但它现在是一个时间戳。 此外,如果您使用此命令,如
CREATE TABLE table2 AS SELECT to_timestamp(to_char(tb1.date, '9999-99-99 99:99:99'),'YYYY-MM-DD HH24:MI:SS') AS realDate FROM table1 AS tb1; 
你可能最终得到timstamptz(带时区的时间戳)而不是时间戳(没有时区的时间戳)。您可以像这样更改它:
ALTER TABLE table2 ALTER realDate SET DATA TYPE timestamp USING realDate;
    

要回复问题请先登录注册