2016-04-07 9 views
1

Reporting Servicesのデータベースからdatetimeが次のような整数として格納されています:20160511しかし、場合によっては0だけです。次の処理を行う式が必要です。値が0の場合文字列を "never"にし、そうでなければデータを正しいフォーマットにします。 私はSSRSレポートで式を使用しようとした、このような何か:データは、正しい正常に動作している、と日付を示しているが、IIFとCDateはSSRS式で#errorを得ていますか?

==IIF(Fields!name.Value=0,"never", Cdate(...)) 

場合は、私が取得しています0分野でこのエラーは#errorといくつかの警告です。

私はちょうどこの使用している場合:ここで

==IIF(Fields!name.Value=0,"never", "something else") 

が真の枝に取り組んでいる、それは決して、正しく何か他の文字列を示していません。私は最初のコードを試しましたwth何も日付はありません、他は、それは働いていませんでした。

私は本当に混乱しています。誰か最初のコードを修正するためのアイデアはありますか?あなたはエラーを取り除くためにCDATE内の別のIIFを置くことができるはず

+0

この列のデータ型は? '#Error'値が' string'' never 'を 'DateTime'カラムに出力してしまうのではないかと思います。 –

+0

データベースでは整数ですが、2番目のケースでは、問題や警告なしに文字列を書きますので、問題はないと思います。 –

+0

= IIFはif文の左右の両方を評価しますが、Field!name.Value = 0のときは右側が評価されない可能性があります。 この場合、= IFを使用するとすぐに問題を解決できますしかし、あなたはサーバーを報告する必要があります2008年またはそれ以降...私は信じて... – Chris

答えて

0

変換日付varchar型の形式および数式の中には動作します。 フォーマット同じものを使用することができます。例えば、あなたはMM/DD/YYYYで出力したい場合は、あなたの表現が、私はこれが役に立てば幸い、

==IIF(Fields!name.Value=0,"never", Format(Fields!Date.Value,"MM/dd/yyyy")) 

を以下のようになります。乾杯!

0

:予想通り

=IIF(Fields!name.Value = 0,"never", Cdate(IIF(Fields!name.Value=0, "2000-01-01", Fields!Date.Value))) 
関連する問題