Oracle 时间戳问题转换日期
Oracle timestamp issue to convert date
我被困在一个数据仓库任务中,我需要映射一个来源为 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
table.
但是当数据加载到目标中时,这是给定的输出:
12/1/9999 12:00:00.000000 AM +00:00
期望和预期的输出:
2019-08-20 12:00:00 AM +02:00
如果要插入 TIMESTAMP 列,为什么要 TO_CHAR?
只需插入:
select TO_TIMESTAMP_TZ('2019-08-20', 'yyyy-mm-dd"T"hh:mi:sstzhtzm') from dual;
由于您在 varchar2
中只有截止日期的精度可用,timestamp
的所有其他部分(小时、分钟、秒和秒的小数部分)都将为 0。
试试这个:
select TO_TIMESTAMP_TZ('2019-08-20', 'yyyy-mm-dd') from dual;
干杯!!
我被困在一个数据仓库任务中,我需要映射一个来源为 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
table.
但是当数据加载到目标中时,这是给定的输出:
12/1/9999 12:00:00.000000 AM +00:00
期望和预期的输出:
2019-08-20 12:00:00 AM +02:00
如果要插入 TIMESTAMP 列,为什么要 TO_CHAR?
只需插入:
select TO_TIMESTAMP_TZ('2019-08-20', 'yyyy-mm-dd"T"hh:mi:sstzhtzm') from dual;
由于您在 varchar2
中只有截止日期的精度可用,timestamp
的所有其他部分(小时、分钟、秒和秒的小数部分)都将为 0。
试试这个:
select TO_TIMESTAMP_TZ('2019-08-20', 'yyyy-mm-dd') from dual;
干杯!!