IBM Cognos _days_between 功能不工作

IBM Cognos _days_between function not working

我在使用 Cognos 10 时遇到问题。我正在尝试计算日期之间的天数,因此我使用 _days_between( date1, date2 ) 函数。

_days_between ([Derniere Date Changement diaphragme] , [Premiere Date Changement diaphragme])

我很确定这两个日期是日期对象(我在属性中将它们设置为日期并且数据库中的数据类型是日期),但我收到此错误:

QE-DEF-0459 CCLException
QE-DEF-0260 Erreur d'analyse syntaxique avant ou près de la position 55 de '_days_between([Derniere Date Changement diaphragme],'
QE-DEF-0261 QFWP - Analyse du texte : days_between ([Derniere Date Changement diaphragme] , [Premiere Date Changement diaphragme])

很抱歉错误是法语,错误是解析错误。 我尝试将该函数与 "hard" 日期、我数据库中的其他日期一起使用,但没有任何效果!

EDIT :只有当我使用 _days_between( date1 ; date2) 而不是 _days_between( date1, date2) (为什么?)

但我还是无法计算出这两个日期之间的天数。函数 returns 0。但是,_days_between( [Derniere Date Changement Diaphragme] ; 2015-05-01) 工作正常。

知道这里发生了什么吗?

Cognos _days_between 函数适用于日期,不适用于日期时间。

一些数据库,如 Oracle,存储所有带有时间戳的日期。

  1. 在直接查询数据源时,请尝试使用数据库的函数来获取此数据。如果可能,这是更可取的,因为它将工作推送到速度更快的数据库。

在 Oracle 中试试这个:

abs([Derniere Date Changement diaphragme]-[Premiere Date Changement diaphragme])

编辑:仅在您的一个字段上发生的错误表明该日期字段存在问题。 运行 直接针对您的 MySql 数据源进行查询,并查看原始数据是否正确显示为日期。

要在 MySql 中进行日期差异: DATEDIFF( [Derniere Date Changement diaphrage], [Premiere Date Changement diaphrame] )

编辑:第二点与 Cognos 10 无关。可以忽略

  1. 当您必须使用 cognos 函数时,将传入的带时间日期(日期时间)字段转换为不带任何时间(日期)的带有

    的日期

    CAST([Derniere Date Change diaphragma],date)