如何从 Oracle 数据库中删除尾随 0 和偏移量

How to remove trailing 0s and offset from Oracle db

我正在使用 Oracle 数据库(版本 12c),其中包含 date 列,日期格式为 YYY-MM-DD H23:Mi:SS.

所有日期都存储在 EST 中。

我正在将这些日期转换为 UTC,因此 2021-09-23 09:12:22 将显示为 2021-09-23 14:12:22

我有以下查询:

SELECT my_date,
       FROM_TZ(CAST(my_date AS TIMESTAMP), 'America/New_York') AT TIME ZONE 'UTC' AS my_date_utc
FROM my_table

这是我的结果示例:

my_date               my_date_utc
-------------------   -------------------
2018-04-28 21:21:26   2018-04-29 01:21:26.000000 +00:00
2018-12-18 07:42:25   2018-12-18 12:42:25.000000 +00:00

如何从结果中删除“.000000 +00:00”?所以结果将显示为:

my_date               my_date_utc
-------------------   -------------------
2018-04-28 21:21:26   2018-04-29 01:21:26
2018-12-18 07:42:25   2018-12-18 12:42:25

要以任何(有效的)所需格式显示带时区的时间戳,您需要使用 to_char。像这样(未测试):

SELECT my_date,
       to_char(
         FROM_TZ(CAST(my_date AS TIMESTAMP), 'America/New_York') 
                 AT TIME ZONE 'UTC', 'yyyy-mm-dd hh24:mi:ss') AS my_date_utc
FROM my_table