从Cognos Report Studio中删除日期

时间:2013-10-02 13:15:05

标签: sql date timestamp report cognos-8

我正在使用Cognos Reporting Studio。我要做的是显示一系列日期范围内的项目。我将显示所选年份和前两年的计数。但是,第四个计数显示为空白年份。现在我开始认为这是因为当时的时间与日期有关。因此,当最大日期值为2013年3月1日上午12:00:00时,则2013年3月1日06:17:00 AM超出该范围。我需要从日期中删除时间。这是我目前正在使用的:

Case

when [GCR_RECEIVED_DT] between cast(substring ([FromDate],1,10),date) 
and _add_years(cast(substring ([ToDate],1,10),date),-2) 
then extract(year, _add_years([ToDate],-2) )

when [GCR_RECEIVED_DT] between _add_years(cast(substring ([FromDate],1,10),date),1)
and _add_years(cast(substring ([ToDate],1,10),date),-1) 
then extract(year,_add_years([ToDate],-1))

when [GCR_RECEIVED_DT] between _add_years(cast(substring ([FromDate],1,10),date),2)
and cast(substring ([ToDate],1,10),date) 
then extract(year,[ToDate])

end

有人告诉我应该使用强制转换和子串。但我一直收到这个错误:

  

执行操作'sqlPrepareWithOptions'时发生错误   状态= ' - 9'。

伴随着这条大信息。我相信我不必包括所有这些,但我会去。

  

UDA-SQL-0107操作期间发生了一般性异常   “准备”.ORA-00904:“SUBSTRING”:无效标识符RSV-SRV-0042   追溯:RSReportService.cpp(722):QFException:CCL_CAUGHT:   RSReportService :: process()RSReportServiceMethod.cpp(263):QFException:   CCL_RETHROW:RSReportServiceMethod :: process():   asynchWait_RequestRSASyncExecutionThread.cpp(808):QFException:   RSASyncExecutionThread :: checkExceptionRSASyncExecutionThread.cpp(260):   QFException:CCL_CAUGHT:RSASyncExecutionThread :: runImpl():   promptPagingForward_RequestRSASyncExecutionThread.cpp(864):   QFException:CCL_RETHROW:RSASyncExecutionThread :: processCommand():   promptPagingForward_RequestExecution / RSRenderExecution.cpp(670):   QFException:CCL_RETHROW:   RSRenderExecution :: executeAssembly / RSDocAssemblyDispatch.cpp(291):   QFException:CCL_RETHROW:   RSDocAssemblyDispatch :: dispatchAssemblyAssembly / RSLayoutAssembly.cpp(79):   QFException:CCL_RETHROW:   RSLayoutAssembly :: assembleAssembly / RSDocAssemblyDispatch.cpp(358):   QFException:CCL_RETHROW:   RSDocAssemblyDispatch :: dispatchChildrenAssemblyForwardAssembly / RSReportPagesAssembly.cpp(179):   QFException:CCL_RETHROW:   RSReportPagesAssembly :: assembleAssembly / RSDocAssemblyDispatch.cpp(308):   QFException:CCL_RETHROW:   RSDocAssemblyDispatch :: dispatchAssemblyAssembly / RSPageAssembly.cpp(303):   QFException:CCL_RETHROW:   RSPageAssembly :: assembleAssembly / RSDocAssemblyDispatch.cpp(308):   QFException:CCL_RETHROW:   RSDocAssemblyDispatch :: dispatchAssemblyAssembly / RSTableRowAssembly.cpp(177):   QFException:CCL_RETHROW:   RSTableRowAssembly :: assembleAssembly / RSDocAssemblyDispatch.cpp(308):   QFException:CCL_RETHROW:   RSDocAssemblyDispatch :: dispatchAssemblyAssembly / RSTableCellAssembly.cpp(137):   QFException:CCL_RETHROW:   RSTableCellAssembly :: assembleAssembly / RSDocAssemblyDispatch.cpp(358):   QFException:CCL_RETHROW:   RSDocAssemblyDispatch :: dispatchChildrenAssemblyForwardAssembly / RSTableAssembly.cpp(119):   QFException:CCL_RETHROW:   RSTableAssembly :: assembleAssembly / RSDocAssemblyDispatch.cpp(358):   QFException:CCL_RETHROW:   RSDocAssemblyDispatch :: dispatchChildrenAssemblyForwardAssembly / RSTableRowAssembly.cpp(177):   QFException:CCL_RETHROW:   RSTableRowAssembly :: assembleAssembly / RSDocAssemblyDispatch.cpp(308):   QFException:CCL_RETHROW:   RSDocAssemblyDispatch :: dispatchAssemblyAssembly / RSTableCellAssembly.cpp(137):   QFException:CCL_RETHROW:   RSTableCellAssembly :: assembleAssembly / RSDocAssemblyDispatch.cpp(358):   QFException:CCL_RETHROW:   RSDocAssemblyDispatch :: dispatchChildrenAssemblyForwardAssembly / RSDocAssemblyDispatch.cpp(308):   QFException:CCL_RETHROW:   RSDocAssemblyDispatch :: dispatchAssemblyRSQueryMgr.cpp(1131):   QFException:CCL_RETHROW:   RSQueryMgr :: getResultSetIteratorRSQueryMgr.cpp(1295):QFException:   CCL_RETHROW:RSQueryMgr :: createIteratorRSQueryMgr.cpp(1569):   QFException:CCL_RETHROW:   RSQueryMgr :: executeRsapiCommandRSQueryMgr.cpp(1559):QFException:   CCL_RETHROW:   RSQueryMgr :: executeRsapiCommandRSQueryMgrExecutionHandlerImpl.cpp(168):   QFException:CCL_RETHROW:   RSQueryMgrExecutionHandlerImpl ::执行()RSQueryMgrExecutionHandlerImpl.cpp(160):   QFException:CCL_RETHROW:   RSQueryMgrExecutionHandlerImpl ::执行()QFSSession.cpp(1147):   QFException:CCL_RETHROW:   QFSSession :: ProcessDoRequest()QFSSession.cpp(1145):QFException:   CCL_CAUGHT:QFSSession :: ProcessDoRequest()QFSSession.cpp(1102):   QFException:CCL_RETHROW:   QFSSession :: ProcessDoRequest()QFSSession.cpp(1078):QFException:   CCL_RETHROW:QFSSession :: ProcessDoRequest()QFSConnection.cpp(788):   QFException:CCL_RETHROW:QFSConnection :: ExecuteQFSQuery.cpp(213):   QFException:CCL_RETHROW:QFSQuery :: Execute   v2CoordinationQFSQuery.cpp(4456):QFException:CCL_THROW:   CoordinationPlanner

我也尝试过to_date而不是强制转换。但我仍然得到同样的东西。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

我刚使用了_add_days和我的ToDate,所以最大日期现在是2013年3月2日12:00:00 AM。这使得Cognos能够正确计算2013年3月1日的日期。