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
字段,你可以做几件事:
- 创建一个新的
DATE
字段并将 day
部分默认为月份的第一天
- 创建一个新的
VARCHAR(10)
并将其存储为字符串
如果您计划根据此字段或任何日期操作/计算进行分区 (PPI),选项 #1 更好。如果你只是用它来展示,那么任何一个都可以。
如果您想做的只是 return CREATE_DT
不同的格式,您可以使用这个:
SELECT CREATE_DT (FORMAT '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
字段,你可以做几件事:
- 创建一个新的
DATE
字段并将day
部分默认为月份的第一天 - 创建一个新的
VARCHAR(10)
并将其存储为字符串
如果您计划根据此字段或任何日期操作/计算进行分区 (PPI),选项 #1 更好。如果你只是用它来展示,那么任何一个都可以。
如果您想做的只是 return CREATE_DT
不同的格式,您可以使用这个:
SELECT CREATE_DT (FORMAT 'YYYY-MM')