2017-10-10 55 views
0

正如您可能已经意识到的那样,我正在使用很多此IBM Bluemix DataConnect服务。创建活动时,可以使用自定义过滤器(它使WHERE子句可以将逻辑添加到查询中)细化要导出的数据DataConnect中的自定义过滤器

我试图过滤TIMESTAMP字段,试图获得1一个月的数据,但这句话不起作用。

DATE(SHIPMENT_TMS) >= CURRENT DATE - 2 MONTH - (DAY(CURRENT DATE)-1)DAYS 

我收到以下错误消息

自定义过滤器失败。重试刚执行的整形操作。 •使用SQL WHERE子句表达式筛选行 'DATE(SHIPMENT_TMS)> = CURRENT DATE - 2 MONTH - (DAY(当前的 DATE)-1)DAYS的java.lang.RuntimeException:[1.36] failure:end of输入 预期DATE(SHIPMENT_TMS)> = CURRENT DATE - 2个月 - (DAY(CURRENT DATE)-1)DAYS

这可能是DATE()或DAY()不被服务的认可。有没有人试图做这样的过滤器?

谢谢

+0

旁注:你的约会数学是有缺陷的。如果当前日期比前一个月支持的月份更大,[您将在错误的月份结束](https://gist.github.com/Clockwork-Muse/ee76389b511c8ce25b847ab0fe3db9f0)。因为所有月份都以1开始,所以您需要首先获得月初。此外,使用时间戳列上的'DATE'将使系统忽略任何索引:您应该使用'shipment_tms> = TIMESTAMP( ,'00:00:00')'。 –

+0

嗨,这是一个有效的场景。但是,这是在该月(13日)的同一日期执行的,因此它始终具有相同的值和模式。谢谢 –

+0

'但是,这是在月份(13日)的同一天执行的,所以它将始终具有相同的值和模式。“ - 当然。 _目前_。无论对当前环境进行何种(某些)更改,始终尝试使代码能够工作。在不同的日期运行是一个简单的环境变化。请注意,您正在使用的当前代码无法在特定月份的最后一天进行可靠测试!这可能是你的一个担忧。 –

回答