2016-12-06 23 views
0

В таблице Teradata есть два столбца даты со следующим определением.Teradata - Проблемы с выпуском формата даты

Date1 DATE FORMAT 'DD-MM-YYYY' 
Date2 DATE FORMAT 'DD-MM-YYYY' 

Как вы можете видеть, формат даты такой же для обоих столбцов.

Значения, которые я вижу в Teradata SQL Assistant различны для DATE1 & Date2 ...

For Date1 it is shows as MM/DD/YYYY 
For Date2 it is shown as DD/MM/YYYY 

Кроме того, в связи с этим, EXTRACT(MONTH FROM Date...) не работает одинаково для обеих колонн.

Обратите внимание: колонкаDate2 обновляется мной со значениями, такими как '04 -28-2016 'i.e.' MM-DD-YYYY '. И это должно получить формат Date1, как показано в SQL Assistant.

Не можете понять, где я ошибался? Любое пособие было бы полезно.

Спасибо,

ответ

1

The FORMAT используется для литья из/в строку, но SQL Assistant использует формат, указанный при Сервис -> Параметры -> Формат данных -> Показать дату в этом формате. И DATE хранится во внутреннем формате, поэтому EXTRACT не зависит от него.

Btw, единственный рекомендуемый способ написать дату является стандартной SQL-х DATE '2016-04-28'

+0

Спасибо dnoeth. Вы имеете в виду, что FORMAT не требуется для определения таблицы? в DDL? Как терадата знает, что такое дата и какой месяц? В моем случае EXTRACT вел себя по-другому. Есть идеи ? – Aditya

+0

@Aditya: всегда существует FORMAT для столбца, если вы не укажете в CREATE TABLE, он использует по умолчанию систему (а затем она не показана SHOW TABLE). Можете ли вы показать точную информацию о проблемах с ЭКСТРАКТОМ? – dnoeth

+0

извините за поздний ответ ... как выяснить, где я ошибся, если мой EXTRACT (Month FROM Date) возвращает дату, тогда как EXTRACT (Date FROM Date) возвращает месяц. Эта проблема, с которой я столкнулся и не могу понять, почему? Надеюсь, теперь моя озабоченность стала яснее? – Aditya