how to add date in Teradata?

天大地大妈咪最大 提交于 2019-12-13 02:55:18

问题


Hi i want to add 01/01/1970 to a column ,datatype of last_hit_time_gmt is bigint ,when i run the below query i am getting data type

last_hit_gmmt

does not match a defined datatype name.

   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'

please help me..


回答1:


The query and data type is incompatible with Teradata.

  • As stated in the comments you may want to use "CASE" instead of "IFF". The general format is

CASE WHEN *condition* THEN *result_if_true*
 ELSE *result_if_false*
END as *ColumnName*

editing based on comment response

So in your query example the case statement can be used like...


    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'

Also, if you are merely just trying to update the field STG.last_hit_time_gmt, why not just use two simple UPDATE statements?


    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';


来源:https://stackoverflow.com/questions/33911820/how-to-add-date-in-teradata

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!