Префиксная переменная DateTime - PullRequest
0 голосов
/ 31 октября 2019

Я новичок в студии отчетов Cognos 10.2 на данный момент. Мне нужно объявить префикс даты и времени в моем sql, чтобы заставить мои запросы объединения работать. Я протестировал несколько объявлений даты и времени, но, похоже, он не работает, и я продолжаю получать от сервера возвращаемый неопознаваемый ответ инфраструктуры запросов.

Я пробовал некоторые из кодов, которые я нашел на некоторых форумах Cognos, как показано ниже. ниже.

Codes that i've tried
1. '1970-01-01T00:00:00.000000000' as invdate
2.  todate(null) as invdate

/********** This below is my code ***********/
select 
'fstgld' as wso,
0 as pono,
'nosh' as shpm,
'gld' as DocType,
0 as DocNo,
'gl' as item,
trim(tffst305.dim2) as ItemGroup,
tffst305.year as fy,
tffst305.perd as period,
'fst' as slsordtype,
'finbg' as finbg,
0 as Qty,
tffst305.leac as leac,
0 as Sales,
tffst305.fdah-tffst305.fcah as Cost
    current_date as invdate      <------this is the part where i keep getting error as i need to declare a prefix datetime

 From tffst305
 WHERE 
 tffst305.ptyp = 1 and
 tffst305.budg ='ACT' and
 tffst305.company_nr = 810 

 union all

 select 
cisli310.orno as wso,
cisli310.pono as pono,
cisli310.shpm as shpm,
cisli310.tran as DocType,
cisli310.idoc as DocNo,
cisli310.item as item,
tdsls411.citg as ItemGroup,
tfgld018.year as fy,
tfgld018.vprd as period,
cisli310.sotp as slsordtype,
tccom112.cfcg as finbg,
cisli310.dqua as Qty,
'inv' as leac,
cisli310.amth(1) as Sales,
0 as Cost,
    cisli305.idat as invdate  <--- extracted from the table field

 From cisli310
 RIGHT OUTER JOIN cisli305 ON cisli310.tran = cisli305.tran and 
 cisli310.idoc = cisli305.idoc
 LEFT OUTER JOIN tdsls411 ON cisli310.orno=tdsls411.orno and 
 cisli310.pono=tdsls411.pono
 LEFT OUTER JOIN tccom112 ON cisli305.ofbp = tccom112.itbp
 inner join tfgld018 on cisli310.tran = tfgld018.ttyp and cisli310.idoc = 
 tfgld018.docn 
 WHERE 

 cisli310.sotp  in ('SSP', 'SPL', 'SWK') and cisli310.amth(1) <>0 and
 cisli305.company_nr=810 and 
 cisli310.company_nr=810 and
 tdsls411.company_nr=810 and
 tfgld018.company_nr=810 and
 tccom112.company_nr=810 

Поле записи является типом данных datetime, таким как 2009-07-03 03:08:03 pm

1 Ответ

0 голосов
/ 31 октября 2019

Попробуйте заменить current_date на # timestampMask ($ current_timestamp, 'yyyy-dd-mm') # При необходимости вы можете добавить другие части даты или времени

timestampMask (string_expression1, string_expression2) Возвращает «string_expression1», представляющийвременная метка с часовым поясом, обрезанная до формата, указанного в "string_expression2". Формат в «string_expression2» должен быть одним из следующих: «гггг», «мм», «дд», «гггг-мм», «ггггмм», «гггг-мм-дд», «ггггммдд», «гггг-»мм-дд чч: мм: сс ',' гггг-мм-дд чч: мм: сс + чч: мм ',' гггг-мм-дд чч: мм: сс.ff3 ',' гггг-мм-дд чч:мм: сс.фф3 + чч: мм ',' гггг-мм-ддтчч: мм: сс ',' гггг-мм-ддтчч: мм: сс + чч: мм ',' гггг-мм-ддтчч: мм: сс. ff3 + чч: мм 'или' гггг-мм-ддтчч: мм: сс.фф3 + чч: мм '. Макрофункции, которые возвращают строковое представление временной метки с часовым поясом, показывают точность 9 цифр для дробной частисекунд по умолчанию. Параметры формата позволяют обрезать его с точностью до 3 или 0.

...