Cognos Report Studio 版本 10.2.1 中格式化日期提示的问题
Posted
技术标签:
【中文标题】Cognos Report Studio 版本 10.2.1 中格式化日期提示的问题【英文标题】:Trouble with formatting date prompt in Cognos Report Studio Version 10.2.1 【发布时间】:2020-02-25 08:41:21 【问题描述】:我遇到了如下错误: UDA-SQL-0144 检测到算术异常。[IBM][CLI 驱动程序][DB2/NT64] SQL20448N “1993”无法使用 TIMESTAMP_FORMAT 函数的格式字符串“YYYY-MM-DD”解释。 SQLSTATE=22007 我不太确定出了什么问题...我尝试更改格式,但没有帮助。 我正在使用 to_date 形式,但我不确定它是否正确。 这是我正在使用的 SQL 选择:
select laborcode,
(select sum(workhours) from workperiod where calnum='KOPA'and workdate between to_date(#prompt('StartDate','date')#,'YYYY-MM-DD') and to_date(#prompt('EndDate','date')#,'YYYY-MM-DD')) -
(select count(calnum) from workperiod where calnum='KOPA'and workdate between to_date(#prompt('StartDate','date')#,'YYYY-MM-DD') and to_date(#prompt('EndDate','date')#,'YYYY-MM-DD') and shiftnum='HOLIDAY') * 8 as stevilo_praznikov_ure,
(select sum(lt.regularhrs) from labtrans lt where lt.laborcode = l.laborcode and lt.orgid = l.orgid and startdate between to_date(#prompt('StartDate','date')#,'YYYY-MM-DD') and to_date(#prompt('EndDate','date')#,'YYYY-MM-DD')) as delovne_ure,
(select sum(ass.laborhrs) from assignment ass where ass.laborcode = l.laborcode and ass.scheduledate between to_date(#prompt('StartDate','date')#,'YYYY-MM-DD') and to_date(#prompt('EndDate','date')#,'YYYY-MM-DD')) as assignment_ure
from labor l
【问题讨论】:
to_date()
函数是 timestamp_format()
的同义词。输入到提示中的值必须遵循指定的模式 (DD.MM.YYYY)。否则 Db2 将抛出异常。
嗨@mao 感谢您的回答!我知道哦,输入的提示必须遵循模式。在我的数据库中是模式(YYYY.MM.DD),我第一次使用这个模式也没有工作。它只是一遍又一遍地告诉我这个错误。因此,如果我使用模式 (YYYY.MM.DD),它会显示相同的错误,但在结尾:无法使用格式字符串“YYYY.MM.DD” 进行解释。如果你能帮助我,我会非常感激。干杯
你能试试 YYYY-MM-DD 的格式看看会发生什么吗?
嗨@Daniel。我现在已经尝试了模式 YYYY-MM-DD,但错误仍然存在。现在在结尾处说:无法使用格式字符串“YYYY-MM-DD”进行解释。我需要在我的查询Filter details中加入一些表达式吗?我试过这样的表达式: [laborcode] >= ?StartDate? 和另一个 [laborcode] 但它没有意义,因为 laborcode只是在工人的 name.surname 样式。它没有错误地结束,但图表中没有值。除了劳动力代码聚合函数之外,我已经放置了所有 3 个数据项,所以它应该可以工作。
嗨@VAIJason。我检查了所有三个日期:工作日期、开始日期和预定日期。只有 scheduleate 有几行 scheduleate = null。另外两列充满了数据。如果我在 SQuirreL 中使用以下参数运行选择::StartDate 和 :EndDate 并给它们一个范围,则选择完美。
【参考方案1】:
我已经通过提示解决了问题。我需要做的就是删除提示中的数据类型 "date" 并将格式模式设置为 YYYY-MM-DD 并且它正在正常工作。感谢大家的帮助,非常感谢! 现在选择:
select laborcode,
(select sum(workhours) from workperiod where calnum='KOPA'and workdate between to_date(#prompt('StartDate')#,'YYYY-MM-DD') and to_date(#prompt('EndDate')#,'YYYY-MM-DD')) -
(select count(calnum) from workperiod where calnum='KOPA'and workdate between to_date(#prompt('StartDate')#,'YYYY-MM-DD') and to_date(#prompt('EndDate')#,'YYYY-MM-DD') and shiftnum='HOLIDAY') * 8 as stevilo_praznikov_ure,
(select sum(lt.regularhrs) from labtrans lt where lt.laborcode = l.laborcode and lt.orgid = l.orgid and startdate between to_date(#prompt('StartDate')#,'YYYY-MM-DD') and to_date(#prompt('EndDate')#,'YYYY-MM-DD')) as delovne_ure,
(select sum(ass.laborhrs) from assignment ass where ass.laborcode = l.laborcode and ass.scheduledate between to_date(#prompt('StartDate')#,'YYYY-MM-DD') and to_date(#prompt('EndDate')#,'YYYY-MM-DD')) as assignment_ure
from labor l
【讨论】:
以上是关于Cognos Report Studio 版本 10.2.1 中格式化日期提示的问题的主要内容,如果未能解决你的问题,请参考以下文章
各位,cognos active report和固定报表有啥区别