2016-06-24 29 views
1

Cognosを初めて使用していて、昨日と午後の間にある行のみを許可する列にフィルタを追加しようとしています今日は午前4時に、今日は午前3時に。私はDB2で動作するクエリを持っていますが、Cognosのフィルタにそれを追加しようとすると、解析エラーが発生します。また、フィルタリングしようとしている列のデータ型がUnknown(Unsupported)型であることがプロパティで検出されました。私は、データを制限しようとしている各時間フレームに対して2つのデータ項目式を作成することから始めました。しかし、最初の構文解析エラーが発生しました。Cognosの昨日の午前4時から今日の午前3時の間にある行を抽出するためのフィルタを追加する

[Presentation Layer].[Cr dtime]=timestamp(current date) - 1 day + 4 hour 

これは私のdb2ローカルテストデータベースでは動作しますが、Cognosではコンパイルされません。私もタイムスタンプに列をキャストしようとしましたが、どちらも動作していません。どんな助けもありがとうございます。私も_add_days関数を使用してみましたが、私はまだ解析エラーが発生します。 2016-01-02T11:11:45.000000000

最終的に2つのフィルタが機能するようになると、元のフィルタはこの構文に近いと予想されます。

[プレゼンテーション層] [クロムDTIME】ここで、[昨日4AM]と[今日3AM]

+0

あなたの最初のステップは、なぜそれがFMで不明なタイプとして戻ってくるのかを調べることです。 DB2ではどのデータ型ですか?私はDB2の専門家ではありませんが、それはかなり面白い探しているタイムスタンプです。私はDB2がISOタイムスタンプを行っているとは思っていません。これがchar/varcharフィールドの場合は、Tを1つのスペースに置き換えます。 – Andrew

答えて

0

の間にある、あなたのフィルターです。

[Presentation Layer].[Cr dtime] between 
cast(_add_hours(_add_days(current_date,-1),4),timestamp) 
and 
cast(_add_hours(current_date,3),timestamp) 

Cognosの中CURRENT_DATEはヘクタールないので、これは動作します時間成分。 タイムスタンプタイプに直接キャストする場合は、日付の時間部分が12:00:00.000 AMまたは深夜になります。これを知ることで、真夜中からどれくらいの時間を追加して、タイムスタンプタイプにキャストし、これをフィルタに使用することができます。

関連する問題