CST/CDT date to MM/DD/YYYY hh:mm in oracle



我有一个CSV文件,其中包括CST和CDT。

例如:
07-MAR-2017 11:00:00 PM CST
03-OCT-2017 11:00:00 PM CDT

CSV中的日期字段被存储为VARCHAR2(30)。

目标日期字段需要转换为下面显示的格式:

     MM/DD/YYYY hh:mm

考虑到源文件中有两个时代,我们该如何在Oracle中进行此转换?

请帮助。

谢谢
蒂娜

使用TO_TIMESTAMP_TZ将其读取为TIMESTAMP WITH TIME ZONE数据类型。如果要将其转换为公共时区,请使用AT TIME ZONE 'UTC'将其转换为UTC时区(例如)。

sql小提琴

Oracle 11G R2架构设置

CREATE TABLE your_table ( value ) AS
SELECT '07-Mar-2017 11:00:00 PM CST' FROM DUAL UNION ALL
SELECT '03-Oct-2017 11:00:00 PM CDT' FROM DUAL UNION ALL
SELECT '03-Oct-2017 11:00:00 PM CST' FROM DUAL;

查询1

SELECT TO_CHAR(
         TO_TIMESTAMP_TZ(
           value,
           'DD-MON-YYYY HH12:MI:SS AM TZD',
           'NLS_DATE_LANGUAGE=American'
         ) AT TIME ZONE 'UTC',
         'MM-DD-YYYY HH24:MI'
       ) AS utc_time
FROM   your_table

结果

|         UTC_TIME |
|------------------|
| 03-07-2017 23:00 |
| 10-03-2017 23:00 |
| 10-03-2017 23:00 |

相关内容

  • 没有找到相关文章

最新更新