Teradata - конвертировать 'гггг-мм-дд' в гггг-мм - PullRequest
0 голосов
/ 30 сентября 2019

У меня проблема с изменением DATE формата столбца (CREATE_DT) ('гггг-мм-дд'), но я хочу создать новый столбец CREATE_Month, который имеет ('гггг-мм') только

Я пытался

SELECT DATE_FORMAT(CREATE_DT,'%Y%m') 
from SCHEMA.Tables

Также

select * 
from (
  Select top 100 *
  from SCHEMA.Tables
  where cast(CREATE_DT AS DATE)  
) AS CREATE_Month

Ниже приведен мой код таблицы CREATE, если это поможет,

CREATE MULTISET TABLE SCHEMA.Tables ,NO FALLBACK ,
  NO BEFORE JOURNAL,
  NO AFTER JOURNAL,
  CHECKSUM = DEFAULT,
  DEFAULT MERGEBLOCKRATIO
  (     
    ACCT_ID INTEGER NOT NULL,
    CREATE_DT DATE FORMAT 'yyyy-mm-dd'
PRIMARY INDEX ( ACCT_ID );

Я ожидаю, что решениеесть 3 столбца

ACCT_ID INTEGER NOT NULL,
CREATE_DT DATE FORMAT 'yyyy-mm-dd',
CREATE_Month (derived from CREATE_DT)

Если кто-то может помочь, было бы здорово. Заранее спасибо

1 Ответ

0 голосов
/ 30 сентября 2019

Вы хотите добавить в таблицу новое поле "месяц" или просто отформатировать поле CREATE_DT в запросе SELECT? Тип данных "месяц" отсутствует, поэтому, если вы хотите добавить поле CREATE_Month, вы можете сделать пару вещей:

  1. Создать новое поле DATE и просто установить по умолчанию day часть первого числа месяца
  2. Создайте новый VARCHAR(10) и сохраните его в виде строки

Если вы планируете делать разбиение (PPI) на основе этого поля или любого другогоманипуляции с датами / расчеты, вариант № 1 лучше. Если вы просто используете его для отображения, то любой из них работает.

Если все, что вы хотите сделать, это вернуть CREATE_DT в другом формате, вы можете использовать это:

SELECT CREATE_DT (FORMAT 'YYYY-MM')
...