Teradata - 将 'yyyy-mm-dd' 转换为 YYYY-MM

Teradata - Convert 'yyyy-mm-dd' into YYYY-MM

我在更改 DATE 格式列 (CREATE_DT) ('yyyy-mm-dd') 时遇到问题,但我想创建一个新列 CREATE_Month,其中包含 ('yyyy-mm') 只有

我试过了

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 table 代码,

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)

如果有人能帮忙就太好了。提前致谢

您要向 table 添加新的 "month" 字段,还是只想格式化 SELECT 查询中的 CREATE_DT 字段?没有 "month" 数据类型,所以如果你想添加一个 CREATE_Month 字段,你可以做几件事:

  1. 创建一个新的 DATE 字段并将 day 部分默认为月份的第一天
  2. 创建一个新的 VARCHAR(10) 并将其存储为字符串

如果您计划根据此字段或任何日期操作/计算进行分区 (PPI),选项 #1 更好。如果你只是用它来展示,那么任何一个都可以。

如果您想做的只是 return CREATE_DT 不同的格式,您可以使用这个:

SELECT CREATE_DT (FORMAT 'YYYY-MM')