我创建了下表:
CREATE SET TABLE test_hold.test_lct ,NO FALLBACK ,
NO BEFORE JOURNAL,
NO AFTER JOURNAL,
DATABLOCKSIZE = 65024 BYTES, CHECKSUM = DEFAULT,
DEFAULT MERGEBLOCKRATIO
(
LCT_NBR SMALLINT NOT NULL,
RGN_NBR SMALLINT NOT NULL,
bus_name CHAR(50) CHARACTER SET LATIN NOT CASESPECIFIC,
mail_add CHAR(50) CHARACTER SET LATIN NOT CASESPECIFIC,
city CHAR(50) CHARACTER SET LATIN NOT CASESPECIFIC,
zip CHAR(8) CHARACTER SET LATIN NOT CASESPECIFIC,
OPN_DT DATE FORMAT 'YYYY-MM-DD',
CSE_DT DATE FORMAT 'YYYY-MM-DD')
UNIQUE PRIMARY INDEX I0050PI ( LCT_NBR );
我遇到的问题是两个日期列。在使用Informatica从平面文件(以YYYY-MM-DD格式保存日期)将记录加载到Teradata后,我注意到日期实际上是MM / DD / YYYY格式。
我在Informatica中的映射使用平面文件作为源,使用我的Teradata表作为目标,只需使用具有以下逻辑的表达式转换将日期转换为日期/时间对象:
TO_DATE(i_Date, 'YYYY-MM-DD')
表达式似乎没有做任何事情,因为如果我在加载到Teradata之前没有将字符串转换为日期/时间,我会得到相同的结果。
为什么Teradata允许包含未在create语句中指定的格式的记录?我希望插入失败,并且表中没有记录。
谢谢,
答案 0 :(得分:0)
Format
关键字仅用于控制其显示方式。根据工具中的设置,不同的工具可以选择以不同方式显示日期。日期通常存储在某些特定于数据库的内部表示中。使用to_char
之类的功能可以显示所需格式的数据。