Teradata日期格式

时间:2015-07-24 15:15:43

标签: sql teradata informatica

我创建了下表:

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语句中指定的格式的记录?我希望插入失败,并且表中没有记录。

谢谢,

1 个答案:

答案 0 :(得分:0)

Format关键字仅用于控制其显示方式。根据工具中的设置,不同的工具可以选择以不同方式显示日期。日期通常存储在某些特定于数据库的内部表示中。使用to_char之类的功能可以显示所需格式的数据。

Format