2012-04-20 23 views
0

SQLコマンドオブジェクトを使用してデータを取得するCrystalレポート(バージョンXI r3)があります。コマンドオブジェクトには、日付のパラメータがあります。私のデータベースはYYYYMMDD形式の数値として格納された "日付"フィールドを使用しているので、このパラメータを数値として指定し、 "YYYYMMDD形式で日付を入力"と言うプロンプトを追加しました。CrystalレポートのSQLパラメータフィールドの日付変換

私のユーザーはあまり気にしません。日付選択ツールを使用したり、MM/DD/YYYY形式で日付を入力できるようにする必要があります。

これまでの調査では、パラメータを実際の日付のデータ型に変換すると、SQLコマンドオブジェクトでパラメータを使用できなくなる可能性がありました。日付をSQL文の数値に変換する必要があります。そのため、SQLステートメントではなく、Crystal Select Wizardで日付範囲コントロールを行う必要があります。この日付フィールドによって索引付けされ、1日あたり多くのレコードを持つ表に当たる)。

私は間違っていますか?ユーザーがMM/DD/YYYY形式で日付を入力できるようにする方法はありますか?それでもSQLコマンドオブジェクトの数値YYYYMMDDパラメータとして使用できるのでしょうか?

+0

なぜSQLステートメントの日付から数値に変換できないのですか?どのDBを使用していますか? – Ryan

答えて

2

元のコマンドを変更して、数値パラメータを日付パラメータに置き換え、コマンド内で日付から数値への変換を行わなければならないかと心配です。

ので、コマンド内:

WHERE MyDate = {?MyNumberParam) 

になるでしょう:

WHERE MyDate = (YEAR({?MyDateParam})*10000) + (MONTH({?MyDateParam})*100) + DAY({?MyDateParam}) 

最後の部分は(2012 * 10000 + 4 * 100 + 20)= 20120420に2012年4月20日に変換されます、私はあなたが望むだろうと信じています。

+0

ありがとう、親切な先生。私は、Crystalの日付 - パラメータフィールドでSQL日付変換関数を使用できないという印象をどこで得たのか分かりませんが、誤解は私のジレンマの根本にあるようです。 – Hellion

関連する問題