我陷入了数据仓库任务,需要映射一个以 varchar2 数据类型为源的列,以及一个以 TIMESTAMP(6)WITH TIME ZONE 数据类型为目标的列。
源中包含的数据格式:2019-08-20
我尝试使用此映射:
select to_char(TO_TIMESTAMP_TZ('2019-08-20', 'yyyy-mm-dd"T"hh:mi:sstzhtzm'),'yyyy-mm-dd hh:mi:ss AM tzh:tzm') from dual;
实际上适用于dual
表。
但是当数据加载到目标中时,这是给定的输出:
12/1/9999 12:00:00.000000 AM +00:00
期望和期望的输出:
2019-08-20 12:00:00 AM +02:00
答案 0 :(得分:0)
如果要插入TIMESTAMP列,为什么要执行TO_CHAR?
只需插入:
select TO_TIMESTAMP_TZ('2019-08-20', 'yyyy-mm-dd"T"hh:mi:sstzhtzm') from dual;
答案 1 :(得分:0)
由于您在varchar2
中只能精确到日期,因此timestamp
的所有其他部分(小时,分钟,秒和秒的一部分)将为0。
试试这个:
select TO_TIMESTAMP_TZ('2019-08-20', 'yyyy-mm-dd') from dual;
干杯!