2017-01-10 12 views
0

私のデータベースには、report_year列(char(4))とreport_month列(varchar(2))があります。私は、ストアドプロシージャを使用し、このテーブルからデータを引き出すssrsレポートを作成しています。私のパラメータは日付と年です。私は両方の列をキャストし、それらを連結し、その間に "/"を追加することによってこれを行うことに成功しています。したがって、SSRSレポートでは、ユーザーが入力する必要があるパラメータは月と日付です(例:09/2016)。今年の年の列と月の列の組み合わせ

ユーザーは、日付を取得するためにドロップダウンします。私のパラメータはvarcharなので、上に書かれた月と年を文字通り尋ねるでしょう。この日を一日だけでなく、今月と一年だけキャストすることはとにかくありますか?私はdatediffとdateadd関数を試しましたが、私は運がありません。

+0

年と月は、整数であり、適切なデータ型を使用します。また、日付をハンドリングしている場合は、 'date'データ型を使用してください。正しいデータ型を使用すると、すべてが簡単になります。私も実際にあなたの質問を得ることはありません、'09/2016 'をdatetimeに変換できるかどうか尋ねていますか?いいえ、あなたは日が必要です。デフォルトを1日にしたい場合は、 'DATEFROMPARTS'と' SUBSTRING'を使うことができます。 – HoneyBadger

+0

私はそれらを両方ともint型にキャストしようとし、int型変数も作成しました。私がそれをするとき、結果は得られません。例:= '201609' intとして 宣言@reportdate選択 ....から.... ....キャスト(reportyear intとして)+キャスト(intとしてreportmonth)= atreportdate(I私は文字通りに置くので、1つ以上の "at"記号を使用することはできません) – Lisbon

答えて

1
Select BegMonth = cast(Replace('09/2016','/','/01/') as date) 
     ,EndMonth = EOMonth(cast(Replace('09/2016','/','/01/') as date)) 

戻り

BegMonth EndMonth 
2016-09-01 2016-09-30 
+0

hmmm ...私は考えが好きですが、SSRSの私の問題を解決しません。月と年の両方を含むドロップダウンが必要です。そこに1日のフィールドがないので、1日は本当に問題ではありません。その月に入力されたデータを考慮するだけで、なぜ年と月の列があるのですか。私はフィールドが構築される方法に同意しないが、ちょっと、私はそれを作成していない。 – Lisbon

関連する問題