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

时间:2019-09-30 06:59:59

标签: datetime casting teradata converters

我在更改// Set Tax Code function setTaxCode(scriptContext){ var currentRecord = scriptContext.currentRecord; var RecType = scriptContext.currentRecord.type; var sublistName = scriptContext.sublistId; var sublistFieldName = scriptContext.fieldId; var line = scriptContext.line; if (sublistName == 'item' && sublistFieldName == 'item'){ var itemType = currentRecord.getCurrentSublistValue({sublistId:sublistName,fieldId:'itemtype'}); var item = currentRecord.getCurrentSublistValue({sublistId:sublistName,fieldId:'item'}); if (item != '' && itemType != ''){ var expAccount = getExpenseAccount(item,itemType); if (expAccount == null) {var expAccountType = null} else {var expAccountType = getExpenseAccountType(expAccount);} if (expAccountType == 'Fixed Asset'){ currentRecord.setCurrentSublistText({sublistId:sublistName,fieldId:'taxcode_display', text:'GST:Capital Purchases', ignoreFieldChange: true}); } } 格式列(DATE)('yyyy-mm-dd')时遇到问题,但是我想创建一个新的CREATE_DT列,其中包含('yyyy-毫米”)

我尝试过

CREATE_Month

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

如果有帮助,下面是我的CREATE表代码,

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

我希望解决方案有3列

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

如果有人可以帮助,那就太好了。预先感谢

1 个答案:

答案 0 :(得分:0)

您是要向表中添加新的“月”字段,还是只想格式化CREATE_DT查询中的SELECT字段?没有“月”数据类型,因此,如果要添加CREATE_Month字段,可以执行以下操作:

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

如果您打算基于此字段或任何日期操作/计算进行分区(PPI),则选项#1更好。如果您只是将其用于显示,那么任何一个都可以。

如果您只想以其他格式返回CREATE_DT,则可以使用以下方法:

SELECT CREATE_DT (FORMAT 'YYYY-MM')