Oracle -日期转换为带有时区的时间戳,但格式与本机输出不同

h9a6wy2h  于 2023-04-11  发布在  Oracle
关注(0)|答案(1)|浏览(136)

我在Oracle中有两个日期列:
Col_A格式为“06.04.2022”Col_B格式为“06.04.2022 08:00:00”
我需要将其移动到postgres,其中目标列是时区格式的timestamp。
这个postgres时区格式看起来像**“2022-04-06 00:00:00+00”**,我想用这个格式将我的oracle列值转换为char/varchar。
我遇到了几个问题:
1-试试这个:

to_char(Col_A, 'YYYY-MM-DD HH:MM:SS')

给出类似“2022-04-0612:04:00”的结果-粗体部分似乎是一些随机时间戳,我希望是“00:00:00”
2-在末尾添加一个时区戳似乎很棘手,除非实际上将日期转换为时间戳。然而,这会产生像“06.04.2022 000000**,000000**+00:00”这样的输出,其中粗体秒很难删除。

from_tz(CAST (SYSDATE AS TIMESTAMP), '+01:00')

那么,从第一个Col_A和Col_B的例子开始,对于将日期值转换为相应的postgres格式有什么想法吗?

dnph8jn4

dnph8jn41#

你可以试试这个:

select 
TO_CHAR( FROM_TZ( CAST( SYSDATE AS TIMESTAMP ), 'UTC' ) AT TIME ZONE 'EUROPE/NICOSIA', 'YYYY-MM-DD HH12:MI:SS TZH:TZM' ) as "StatusTime"
from dual

相关问题