![](/img/trans.png)
[英]How to add column A (date column) to Column B ( number of business days) in teradata to get the new date?
[英]how to add date in Teradata?
嗨,我想将01/01/1970添加到列中,last_hit_time_gmt的数据类型为bigint,当我运行以下查询时,我正在获取数据类型
last_hit_gmmt
与定义的数据类型名称不匹配。
select
distinct STG.OMN_APND_KEY,
STG.last_hit_time_gmt,
IIF(STG.last_hit_time_gmt <>0,ADD_TO_DATE(TO_DATE('01/01/1970', 'DD/MM/YYYY'),'SS',cast(STG.last_hit_time_gmt as DATE ),NULL)
from EDW_STAGE_CDM_SRC.STG_OMNITUREDATA STG
WHERE
UPPER(STG_OMNITUREDATA.EVAR41) IN
('CONS_SUPP: CONSUMER','STORE','PURCHASE') and
STG.OMN_APND_KEY='61855975'
请帮我..
查询和数据类型与Teradata不兼容。
CASE WHEN *condition* THEN *result_if_true* ELSE *result_if_false* END as *ColumnName*
根据评论回复进行编辑
因此,在您的查询示例中,case语句可以像...
select distinct STG.OMN_APND_KEY ,STG.last_hit_time_gmt ,CASE WHEN STG.last_hit_time_gmt = 0 THEN NULL ELSE DATE '1970-01-01' END AS YourColName FROM EDW_STAGE_CDM_SRC.STG_OMNITUREDATA STG WHERE UPPER(STG_OMNITUREDATA.EVAR41) IN ('CONS_SUPP: CONSUMER','STORE','PURCHASE') and STG.OMN_APND_KEY='61855975'
另外,如果您只是尝试更新STG.last_hit_time_gmt字段,为什么不只使用两个简单的UPDATE语句?
UPDATE EDW_STAGE_CDM_SRC.STG_OMNITUREDATA SET STG.last_hit_time_gmt = DATE '1970-01-01' WHERE STG.last_hit_time_gmt <> 0 AND UPPER(STG_OMNITUREDATA.EVAR41) IN ('CONS_SUPP: CONSUMER','STORE','PURCHASE') AND STG.OMN_APND_KEY='61855975'; UPDATE EDW_STAGE_CDM_SRC.STG_OMNITUREDATA SET STG.last_hit_time_gmt = NULL WHERE STG.last_hit_time_gmt = 0 AND UPPER(STG_OMNITUREDATA.EVAR41) IN ('CONS_SUPP: CONSUMER','STORE','PURCHASE') AND STG.OMN_APND_KEY='61855975';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.