2013-06-20 3 views
1

Я хочу создать таблицу в teradata с форматом YYYY-MM и присвоить значение по умолчанию как '0001-01'. Возможно ли это сделать? .. Однако я могу это сделать.Teradata DDL с форматированием даты

создать табличный тест (формат даты t1 «yyyy-mm» не равен нулю);

ответ

0

Даты хранятся внутри как INTEGER значений в Teradata. Вам необходимо указать DEFAULT как DATE '0001-01-01' и разрешить предложение FORMAT, чтобы вернуть обработанные данные клиенту. Это также означает, что вам придется загружать данные в качестве допустимых дат, а не «yyyy-mm».

EDIT:

/* 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 
+0

что означает, что я должен хранить их как символ, а не как дату? – Anantha

+0

Добавлен пример, основанный на тестах в Teradata 13.10 через Teradata Studio 14.2 –

+0

Отлично, поздравляю Anantha, у вас есть решение обеих проблем .. !! – user2407394

1

Оба работают отлично.

См. Ниже синтаксис.

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 
+0

Удивительная благодарность за разъяснение .. :) – Anantha

+0

Значения по умолчанию разрешены в столбцах DATE. –

+0

Спасибо, Роб, просто дай мне пример. Я согласен с тобой .. !! – user2407394