2

別々の日付と時刻 (時間と分のみ) のパラメーターを含むレポートがあります。Date パラメーターは Date/Time 型で、Time パラメーターは Text として設定されています。ストアド プロシージャに渡す引数の数を最小限にしたいので、これら 2 つの値を 1 つにマージします。私は多くの方法でその目標を達成しようとしましたが、SSRS は試行ごとにエラーを返します。

このような表現を使用しようとすると:

=Format(FormatDateTime(Parameters!startDate.Value, DateFormat.ShortDate).ToString() + Parameters!startTime.Value, "dd/MM/yyyy HH:mm")

SSRS は次のエラーを返します。

データ型 nvarchar を datetime に変換するときにエラーが発生しました。

そして、私がDatetime.Parseこのように使用しようとしたとき:

=DateTime.Parse(Format(FormatDateTime(Parameters!startDate.Value, DateFormat.ShortDate).ToString() + Parameters!startTime.Value, "dd/MM/yyyy HH:mm"))

SSRS は次のように述べています。

クエリ パラメーター '@startDate' の値式にエラーが含まれています: 文字列は有効な DateTime として認識されませんでした。インデックス 0 から始まる未知の単語があります。

関数を削除するFormatDateTimeと、さらに別のエラーが発生します。

クエリ パラメーター '@startDate' の値式にエラーが含まれています: 入力文字列の形式が正しくありません。

この式を正しく書く方法はありますか?

PS。SSRS 2008 R2 を使用しています。

4

1 に答える 1

3

これは私のために働く:

=CDate(Format(Parameters!Date.Value, "yyyy-MM-dd") + " " + Parameters!Time.Value)

ここに画像の説明を入力

ここに画像の説明を入力

特定の例のトラブルシューティングを試みませんでしたが、日付と時刻の間にスペースが含まれていないという問題が発生している可能性があります。

上記の表現は、レポートに適している場合があります。堅牢性が異なるロケールになるかどうかはわかりません。

さらに柔軟性が必要な場合は、カスタム コードで連結/変換を行うことも検討できます。

于 2013-05-13T13:06:43.560 に答える