我想使用data.txt
MLOAd
data.txt中
1,20030101020000.000000,20030101020000.000000 -08:00
表格def:
create table test
( sno varchar(3),
ts_name TIMESTAMP(6) ,
ts_zonename TIMESTAMP(6) WITH TIME ZONE
);
Mload insert:
insert into test (sno,ts_name,ts_zonename)
values (:in_sno,
CAST(:in_ts_name AS TIMESTAMP( 6) FORMAT 'YYYYMMDDHHMISSDS( 6)'),
CAST(:in_ts_zonename AS TIMESTAMP( 6) FORMAT 'YYYYMMDDHHMISSDS( 6)')
);
mload成功。
当我查询
时SEL EXTRACT(TIMEZONE_HOUR FROM ts_zonename)
FROM test;
通过BTEQ
它返回0
不应该返回-8?
我在Teradata 14上
答案 0 :(得分:2)
你去了一个删除时区的TIMESTAMP,检查插入ts_zonename的实际数据。
你需要施放到TIMESTAMP WITH TIME ZONE:
CAST(:in_ts_zonename AS TIMESTAMP( 6) WITH TIME ZONE FORMAT 'YYYYMMDDHHMISSDS(F)Z')
如果时区前有空格,您需要将格式更改为'YYYYMMDDHHMISSDS(F)BZ'
或在TD14中切换到Oracle TO_TIMESTAMP_TZ
,这样会更灵活一点关于遗失/额外的空白:
TO_TIMESTAMP_TZ(ts_zonename, 'YYYYMMDDHH24MISS.FF6TZH:TZM')