如何解决PostgreSQL BigInt转换为DateTime并添加几个小时以获取本地时间
我正在尝试将bigint值转换为PostgreSQL中的日期
我正在使用以下代码
SELECT TO_CHAR(TO_TIMESTAMP(1564983632051/ 1000),'YYYY-MM-DD HH24:MI:SS')
然后返回2019-08-05 07:40:32
,这是正确的。
但是我想增加几个小时来获取本地时间。尝试使用以下查询,但抛出错误:
SELECT TO_CHAR(TO_CHAR(TO_TIMESTAMP(1564983632051/ 1000),'YYYY-MM-DD HH24:MI:SS') + INTERVAL '4 hour')
我不想使用单独的查询,如果可以的话 选择(to_timestamp('2019-08-05 07:40:32','YYYY-MM-DD HH24:MI:SS.US')+间隔'4 hour'):: timestamp; 这将返回所需的输出。
我需要在单个查询中同时进行转化和加班。
解决方法
您应该添加到TIMESTAMP
部分,而不是添加到CHAR
的部分:
SELECT TO_CHAR(
TO_TIMESTAMP(1564983632051/ 1000)+ INTERVAL '4 hour','YYYY-MM-DD HH24:MI:SS'
)
,
问题在这里:
select pg_typeof(TO_CHAR(TO_TIMESTAMP(1564983632051/ 1000),'YYYY-MM-DD HH24:MI:SS'));
pg_typeof
-----------
text
在文本值中添加interval
无效。
类似这样:
select TO_CHAR(TO_TIMESTAMP(1564983632051/1000) + interval '4 hour','YYYY-MM-DD HH24:MI:SS') ;
to_char
---------------------
2019-08-05 02:40:32
最好保持操作类型直到最后。然后应用格式。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。