BIEE 内置函数时间戳-- TIMESTAMPADD

浏览: 1662

今天有同事问到他现在开发的报表只想取昨天的数据,但提示器那里没有用到时间字段,怎么实现?我当时回想了一下当前RPD所有的时间变量,有很多时间变量应该可以满足要求,但实现却没有那么直观,网上百度了一下时间变量:发现有好多案例也有用到,觉得TIMESTAMPADD省了不少问题;

以下是我百度到的解释:

TIMESTAMPADD

此函数将指定的时间间隔数添加到指定的时间戳,并返回单个时间戳。

最简单的情况是,此函数根据时间间隔将指定的整数值与时间戳的适当组件相加。加一个星期时,会转换为加七天;而加一个季度时,会转换为加三个月。负的整数值会导致减去时间 (例如将时间倒推)。

指定的组件溢出 (例如超过 60 秒、24 小时、12 个月等) 时,会迫使在下一个组件中加上合适的时间量。例如,与时间戳的天组件相加时,此函数会考虑溢出,并且会计算特定月中的天数 (对于闰年,二月份会按 29 天计算)。

与时间戳的月组件相加时,此函数会验证生成的时间戳中的天组件是否有足够的天数。例如,将1 个月与 2000-05-31 相加不会生成 2000-06-31,因为六月份没有 31 号。此函数会将天组件减少到该月的最后一天,在本示例中即为 2000-06-30。

对于月组件为二月并且天组件为 29 (即闰年中二月的最后一天) 的时间戳,与该时间戳的年组件相加时,会发生类似的问题。如果生成的时间戳不是闰年,则该函数会将天组件减少到 28。

这些操作符合 Microsoft SQL Server 以及 Oracle 数据库的本机 OCI 接口的行为。

语法

TIMESTAMPADD(interval, intExpr, timestamp)

其中:

interval 是指定的时间间隔。有效值为:

· SQL_TSI_SECOND

· SQL_TSI_MINUTE

· SQL_TSI_HOUR

· SQL_TSI_DAY

· SQL_TSI_WEEK

· SQL_TSI_MONTH

· SQL_TSI_QUARTER

· SQL_TSI_YEAR

intExpr 是求值结果为整数值的任意表达式。


我在过滤器那里增加:  TIMESTAMPADD(SQL_TSI_DAY, -1,@{current_date}) 这个语句即可实现;

推荐 0
本文由 hyxiu 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册