首页 > 解决方案 > 如何从 Oracle db 中删除尾随 0 和偏移量

问题描述

我正在使用一个 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

标签: databaseoracledatetimetimeutc

解决方案


要以任何(有效)所需格式显示带有时区的时间戳,您需要使用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

推荐阅读