2017-10-10 136 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日)的同一天執行的,所以它將始終具有相同的值和模式。「 - 當然。 _目前_。無論對當前環境進行何種(某些)更改,始終嘗試使代碼能夠工作。在不同的日期運行是一個簡單的環境變化。請注意,您正在使用的當前代碼無法在特定月份的最後一天進行可靠測試!這可能是你的一個擔憂。 –

回答