我想用YYYY-MM格式在teradata中創建表並將默認值設置爲'0001-01'。是否有可能做到這一點?..但是我能夠做到這一點..具有日期格式化的Teradata DDL
創建表格測試(t1日期格式'yyyy-mm'非空);
我想用YYYY-MM格式在teradata中創建表並將默認值設置爲'0001-01'。是否有可能做到這一點?..但是我能夠做到這一點..具有日期格式化的Teradata DDL
創建表格測試(t1日期格式'yyyy-mm'非空);
日期在內部存儲爲Teradata中的INTEGER
值。您必須將DEFAULT
指定爲DATE '0001-01-01'
並允許FORMAT
子句將格式化的數據返回給客戶端。這也意味着您將不得不將數據加載爲有效日期,而不是「yyyy-mm」值。
編輯:
/* Test results in Teradata Studio 14.2 via JDBC connection to Teradata 13.10 */
create table MyDB.MyTable
(x1 date format 'yyyy-mm' not null default date '0001-01-01');
insert into MyDB.MyTable values (date '2013-01-01'); -- Succeeds
insert into MyDB.MyTable values ('2013-02'); -- Fails
insert into MyDB.MyTable values (date '2013-02'); -- Fails
select * from cms_work_comm_prd.t5; -- Returns to Teradata Studio (JDBC): 2013-01-01
兩者都完美的工作。
請參閱下面的語法。
BTEQ -- Enter your SQL request or BTEQ command:
ct t1(x1 int,y1 date format 'yyyy-mm' not null default date '0001-01-01');
ct t1(x1 int,y1 date format 'yyyy-mm' not null default date '0001-01-01');
*** Table has been created.
*** Total elapsed time was 1 second.
BTEQ -- Enter your SQL request or BTEQ command:
ins t1(1,'2011-11');
ins t1(1,'2011-11');
*** Insert completed. One row added.
*** Total elapsed time was 1 second.
BTEQ -- Enter your SQL request or BTEQ command:
ins t1(2,);
ins t1(2,);
*** Insert completed. One row added.
*** Total elapsed time was 1 second.
BTEQ -- Enter your SQL request or BTEQ command:
sel * from t1;
sel * from t1;
*** Query completed. 2 rows found. 2 columns returned.
*** Total elapsed time was 1 second.
x1 y1
----------- -------
1 2011-11
2 0001-01
這意味着我必須將它們存儲爲字符而不是日期? – Anantha
通過Teradata Studio添加基於Teradata 13.10測試的示例通過Teradata Studio 14.2 –
非常棒,恭喜Anantha,您解決了兩個問題.. !! – user2407394